mirror of
https://github.com/devilbox/docker-php-fpm.git
synced 2025-12-11 19:41:16 +00:00
Compare commits
230 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
28d7ab632e | ||
|
|
395e4d30b4 | ||
|
|
d93387f207 | ||
|
|
c5e3e7257f | ||
|
|
0f7ea87328 | ||
|
|
66b7586eae | ||
|
|
2d4c8647e1 | ||
|
|
f0bb67cbc2 | ||
|
|
1b312bce33 | ||
|
|
6aafdd7023 | ||
|
|
48380c5d98 | ||
|
|
5506d68f1f | ||
|
|
88aeca57aa | ||
|
|
ec8fc4eab6 | ||
|
|
f6015c766a | ||
|
|
f0c625d951 | ||
|
|
a0332b964e | ||
|
|
7c1ceabf97 | ||
|
|
9bc2f1ca31 | ||
|
|
e51d28fcbe | ||
|
|
a002d3aa19 | ||
|
|
114f1b597d | ||
|
|
0b37f92cbb | ||
|
|
6616f336cf | ||
|
|
30f18d858e | ||
|
|
abd10c104b | ||
|
|
9f18603b4d | ||
|
|
d328e8aa67 | ||
|
|
9bddaad387 | ||
|
|
3cdede3519 | ||
|
|
dc98c5cefe | ||
|
|
62c65d19e7 | ||
|
|
b0c7655aca | ||
|
|
6f93613c34 | ||
|
|
6f359ab366 | ||
|
|
add92d6102 | ||
|
|
cdb09fcbee | ||
|
|
6ecd75d59b | ||
|
|
04c051e72f | ||
|
|
d926629879 | ||
|
|
3ca7d92844 | ||
|
|
8864095f8b | ||
|
|
d8be1a89bb | ||
|
|
b15ae8fc84 | ||
|
|
f3669b1bed | ||
|
|
fb36b7151f | ||
|
|
e09e02a7b0 | ||
|
|
8f2a9524fe | ||
|
|
332d03010c | ||
|
|
d9b205f2f1 | ||
|
|
42df419376 | ||
|
|
4be4c2eded | ||
|
|
6a49ffce10 | ||
|
|
ca6b176620 | ||
|
|
7019b00e55 | ||
|
|
c40082e886 | ||
|
|
3f89c534e4 | ||
|
|
c65bd0653b | ||
|
|
89edcd20d8 | ||
|
|
fd0594e3c1 | ||
|
|
bef26e8c27 | ||
|
|
f60c0e8fea | ||
|
|
1fc03c7b0d | ||
|
|
a782cf22ab | ||
|
|
51808ccc1b | ||
|
|
6f901d4bc7 | ||
|
|
b721b3b5ae | ||
|
|
ebd7c5ec37 | ||
|
|
050322cf02 | ||
|
|
5227af8e4c | ||
|
|
9e247307ad | ||
|
|
b095b04ec3 | ||
|
|
5684fac8a2 | ||
|
|
eb6799ad29 | ||
|
|
1c53a0fd68 | ||
|
|
fabc29299c | ||
|
|
83b4cb6b43 | ||
|
|
dc438b0aad | ||
|
|
c8bd21ebbe | ||
|
|
b2476e3851 | ||
|
|
c06a3d2237 | ||
|
|
ce4f022c70 | ||
|
|
9c5326dc0f | ||
|
|
2701a524b9 | ||
|
|
acea0ac0fe | ||
|
|
3153b329f1 | ||
|
|
10285279c7 | ||
|
|
0a04342e46 | ||
|
|
dad684bfd1 | ||
|
|
9fabcf3b71 | ||
|
|
0669d92289 | ||
|
|
6d2053878a | ||
|
|
c3f46d3706 | ||
|
|
de9642c2b5 | ||
|
|
6fa341748b | ||
|
|
5f719f60ce | ||
|
|
ffc8df1906 | ||
|
|
186bf71519 | ||
|
|
422e559ee3 | ||
|
|
eb85e3e288 | ||
|
|
5ed5dd2503 | ||
|
|
1225d564a7 | ||
|
|
a4102e3d7f | ||
|
|
982dd44701 | ||
|
|
bc851cca0f | ||
|
|
ef5b2ed58c | ||
|
|
cbd4f58876 | ||
|
|
fd6550627d | ||
|
|
af150ba371 | ||
|
|
47800a7ede | ||
|
|
d977d941ac | ||
|
|
2ae551e5a5 | ||
|
|
37747d392a | ||
|
|
0a5aadd2a2 | ||
|
|
64c41f7786 | ||
|
|
8bef4c7167 | ||
|
|
58ecd35153 | ||
|
|
55a1333d58 | ||
|
|
fa1ec623d7 | ||
|
|
faa10b9512 | ||
|
|
fc6df6bdaf | ||
|
|
649f667f45 | ||
|
|
0cbd58141d | ||
|
|
965db7f0d5 | ||
|
|
172baf9743 | ||
|
|
fc5e5e21e5 | ||
|
|
529a33f1a0 | ||
|
|
cc77461311 | ||
|
|
f04a5ec693 | ||
|
|
90495fab70 | ||
|
|
f8f485b0bb | ||
|
|
3ad0330bca | ||
|
|
2587886b24 | ||
|
|
3ce6ed507b | ||
|
|
f05301572d | ||
|
|
40d76f355f | ||
|
|
9c1e49b814 | ||
|
|
c1aa814206 | ||
|
|
a382745a2f | ||
|
|
d9d6f2d157 | ||
|
|
9c82fb08c3 | ||
|
|
91733db9e9 | ||
|
|
41fec62672 | ||
|
|
3e9e00e0c2 | ||
|
|
d4a16ba3b3 | ||
|
|
fb7a3e8bff | ||
|
|
dc7336fa3d | ||
|
|
0750ec9339 | ||
|
|
c360bec703 | ||
|
|
1ec8a494e4 | ||
|
|
883a897420 | ||
|
|
7f018000be | ||
|
|
7f3a6f3e64 | ||
|
|
83124e8632 | ||
|
|
806b408878 | ||
|
|
3d15aea68b | ||
|
|
db7c4e6334 | ||
|
|
2c6e013fad | ||
|
|
b35f3a822c | ||
|
|
f20932ce74 | ||
|
|
78d39e57f0 | ||
|
|
6b666d029b | ||
|
|
85b743c822 | ||
|
|
2643b28775 | ||
|
|
bbe1b43474 | ||
|
|
83f57430e5 | ||
|
|
696faf598d | ||
|
|
a0a0738205 | ||
|
|
020d778fca | ||
|
|
cd7424d1f6 | ||
|
|
5ef91da97f | ||
|
|
f59dd5bf6c | ||
|
|
bc01b396a1 | ||
|
|
dd78ed0b71 | ||
|
|
ec7e1cb622 | ||
|
|
91741aaf7f | ||
|
|
87234a6f46 | ||
|
|
a6236b19c7 | ||
|
|
67017e494e | ||
|
|
31864f8335 | ||
|
|
7585081644 | ||
|
|
3e8b4856d1 | ||
|
|
46d1c48104 | ||
|
|
47d2d1f9f5 | ||
|
|
019c3b82d8 | ||
|
|
1817f84301 | ||
|
|
3fd1652455 | ||
|
|
e75b7cb54c | ||
|
|
d68b8dcff0 | ||
|
|
5bd9466995 | ||
|
|
2b53dcab7a | ||
|
|
d286467a6f | ||
|
|
d87857e598 | ||
|
|
a9c8d4fbbe | ||
|
|
be4492795b | ||
|
|
5a10077fe2 | ||
|
|
3075f2afca | ||
|
|
36355c3d60 | ||
|
|
80f8557962 | ||
|
|
3883103a41 | ||
|
|
687a660baa | ||
|
|
6f8f5cc1ea | ||
|
|
f602092471 | ||
|
|
bcbc8e2e45 | ||
|
|
4b21c70b8f | ||
|
|
b943b30b01 | ||
|
|
2df2b8c7eb | ||
|
|
2ab9995e99 | ||
|
|
1e9cb5bcb9 | ||
|
|
bdb61b9c00 | ||
|
|
47e221e210 | ||
|
|
173fd463d3 | ||
|
|
e4dd462ef2 | ||
|
|
4b40a0d932 | ||
|
|
1126319f3d | ||
|
|
56a5cfeb5e | ||
|
|
391502b9eb | ||
|
|
b1c8c8b107 | ||
|
|
81bdfb1026 | ||
|
|
f69a96e16f | ||
|
|
e3ddad4e50 | ||
|
|
dfc3481773 | ||
|
|
6baf6ace61 | ||
|
|
92aed9e7a8 | ||
|
|
e3e0d760e9 | ||
|
|
8b0fdc6cca | ||
|
|
554e979d0e | ||
|
|
ceabd15ee0 | ||
|
|
0e813e6070 | ||
|
|
04ad135df5 |
2
.github/FUNDING.yml
vendored
Normal file
2
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
github: [cytopia]
|
||||||
|
patreon: devilbox
|
||||||
347
.github/workflows/build.yml
vendored
Normal file
347
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,347 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# 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-'))
|
||||||
|
)
|
||||||
55
.github/workflows/linting.yml
vendored
Normal file
55
.github/workflows/linting.yml
vendored
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Job Name
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
name: lint
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# When to run
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
on:
|
||||||
|
# Runs on Pull Requests
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# What to run
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
name: "Lint"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Setup repository
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Lint repository
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
- name: Lint Files
|
||||||
|
run: |
|
||||||
|
make lint-files
|
||||||
|
|
||||||
|
- name: Lint Yaml
|
||||||
|
run: |
|
||||||
|
make lint-yaml
|
||||||
|
|
||||||
|
- name: Lint workflow
|
||||||
|
run: |
|
||||||
|
make lint-workflow
|
||||||
|
|
||||||
|
- name: Lint Changelog
|
||||||
|
run: |
|
||||||
|
make lint-changelog
|
||||||
|
|
||||||
|
- name: Diff generated Docker files
|
||||||
|
run: |
|
||||||
|
make gen-dockerfiles
|
||||||
|
git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||||
350
.github/workflows/nightly.yml
vendored
Normal file
350
.github/workflows/nightly.yml
vendored
Normal file
@@ -0,0 +1,350 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# 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.122'
|
||||||
|
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-'))
|
||||||
|
)
|
||||||
144
.travis.yml
144
.travis.yml
@@ -1,144 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
###
|
|
||||||
### Travis settings
|
|
||||||
###
|
|
||||||
sudo: required
|
|
||||||
language: python
|
|
||||||
services:
|
|
||||||
- docker
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Build Matrix
|
|
||||||
###
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- IMAGE: devilbox/php-fpm
|
|
||||||
# travis encrypt DOCKER_USERNAME=user
|
|
||||||
# travis encrypt DOCKER_PASSWORD=pass
|
|
||||||
# Must be regenerated when repository name/owner changes
|
|
||||||
# DOCKER_USERNAME
|
|
||||||
- secure: "Y7xt3qZW9Zwrsgdd/aCf8ZqA7I039506ZDf/u/WVzGwNHta5YJJ7XYy8XG7XugyqGGXRVpfBiaqmDH4xsPLXyHXdOt2G38GXZHZXIgJOiEJ6aUfpdUxyeu8XIXkD2MDMmc3Kb27Yub/OadxRMLWEflzRnSXXs3KJ8TsbPHh0yRWDMsmHYOYl16gDGUX1izLkEx4J+9iA3+JwIFZk8by/OUuIIQ93bSNORpwHT8A1j7Y1kh8kYkPZ6nRxWO8xrc2wI1Rbp0X+ivLnOotxDZo53UI/0KroeSckDpoWfoz+B7mP+M+5B6kGlI2pKDNQB/ErYvnya6PdtFSS9skbvepR4tBhUOZDDY7NMRg9m3w0b9T1no+g3A4LBGXy6+OZZoiYAGy9LvqMhFkINqbBhRBX+mZhtG0pNXunfcu5dk81Ni/XpXDiy9JU98jItwsRj4SeaPfSt0LUNNXMS/fEwZyTy6TihN1CM3krJpV30Ic5rN64FRnrRjUuNU4lJ/W36yUhM29gb13ahh+f7sDsYoCzMwDM9HFe0YLb3ar3mW1lb3FuUugU2f2EupgCPY60X2XrY9aSgCfbdiVsA84dbLtRfHTPG7UbEcJW5RH8HS+9qVZBK+AcPqon9jbOJRVh7q99YW+R8X/XeyYpz7amacVmRus80+toZ16bbU7D2Qgjdek="
|
|
||||||
# DOCKER_PASSWORD
|
|
||||||
- secure: "ZRrVOVOkSCS2UxEi1HNF1iKefK4sDT/sPRl1HxMQjLnRRaAMdG0aRnBwQf2YAM2qzhCfN85qt6zZtC4awc2mHiZ88JrAZxBjK6xj4BwOyLbDuzpBsKXnx8Nix+wyYYKSjsC3LOYrsUe+4rvkw3tVvVaX8G2llojwdksF34VDmmHBmzCG/Bsexk7UqC+qw0PZm7BtctQO+IL0btmMDijRDElxfR+AuPvf9JdkhYzw9TOO7Jqd53NssNVGyL+XSV0dfGn8PkZTp1e8D+28pLK4oGVog+Wk7Cq94hSGjk5AkWKvL5441rupG1AA8K3njeDNMKdov4o+dmnkAH7Jh8tjShMhNhoxHce3IzpczjhoE1EyYQcyPf1qdfhV35Xv096iWX5809pp1MZF2oE5eism8JaU9NpGClryVbKVKtup8ko9/tCqz01Czq5Vue40feMkGtdePulg59OhyyPLYldsObw8QlZydkrmgVZe6b+GyybeiHraTfDq4pvTgUrC4Cmm5J3IB5Ig1THEiYKHfRJ5hSSMDDODeBXc8Xh6mFssEVshNx/jbUQWuAVYQFw/GIquVHxr6btbevrWIoD+zmqcc0L98u9pYH8w7b+gMgVJNCC4QQz2NCGGWw9l9/TmLrKJgeXbG18n8D314le1zuna6/VfH9pXIlbNO4hgz5NLHJk="
|
|
||||||
matrix:
|
|
||||||
- PHP=5.2
|
|
||||||
- PHP=5.3
|
|
||||||
- PHP=5.4
|
|
||||||
- PHP=5.5
|
|
||||||
- PHP=5.6
|
|
||||||
- PHP=7.0
|
|
||||||
- PHP=7.1
|
|
||||||
- PHP=7.2
|
|
||||||
- PHP=7.3
|
|
||||||
- PHP=7.4
|
|
||||||
- PHP=8.0
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Install requirements
|
|
||||||
###
|
|
||||||
install:
|
|
||||||
# Get newer docker version
|
|
||||||
- max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get update; then break; else i=$((i+1)); fi done
|
|
||||||
- max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce; then break; else i=$((i+1)); fi done
|
|
||||||
- docker version
|
|
||||||
|
|
||||||
# Disable services enabled by default
|
|
||||||
# http://docs.travis-ci.com/user/database-setup/#MySQL
|
|
||||||
- sudo /etc/init.d/httpd stop || true
|
|
||||||
- sudo /etc/init.d/memcached stop || true
|
|
||||||
- sudo /etc/init.d/mongodb stop || true
|
|
||||||
- sudo /etc/init.d/mysql stop || true
|
|
||||||
- sudo /etc/init.d/nginx stop || true
|
|
||||||
- sudo /etc/init.d/postgresql stop || true
|
|
||||||
- sudo /etc/init.d/redis stop || true
|
|
||||||
|
|
||||||
- sudo service httpd stop || true
|
|
||||||
- sudo service memcached stop || true
|
|
||||||
- sudo service mongodb stop || true
|
|
||||||
- sudo service mysql stop || true
|
|
||||||
- sudo service nginx stop || true
|
|
||||||
- sudo service postgresql stop || true
|
|
||||||
- sudo service redis stop || true
|
|
||||||
- netstat -tulpn
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Check generation changes, build and test
|
|
||||||
###
|
|
||||||
before_script:
|
|
||||||
# Regenerate Dockerfiles and make sure nothing has changed (every stage)
|
|
||||||
- pip install ansible
|
|
||||||
- make generate
|
|
||||||
- git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
|
||||||
|
|
||||||
# Build (multiple tries due to network outages)
|
|
||||||
- max=100; i=0; while [ $i -lt $max ]; do if make build-base-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
|
|
||||||
- make test-base-${PHP//.}
|
|
||||||
|
|
||||||
- max=100; i=0; while [ $i -lt $max ]; do if make build-mods-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
|
|
||||||
- make test-mods-${PHP//.}
|
|
||||||
|
|
||||||
- max=100; i=0; while [ $i -lt $max ]; do if make build-prod-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
|
|
||||||
- make test-prod-${PHP//.}
|
|
||||||
|
|
||||||
- max=100; i=0; while [ $i -lt $max ]; do if make build-work-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
|
|
||||||
- make test-work-${PHP//.}
|
|
||||||
|
|
||||||
# Test if PHP modules have changed
|
|
||||||
- ./build/gen-readme.sh "${PHP}"
|
|
||||||
- git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Push to Dockerhub
|
|
||||||
###
|
|
||||||
script:
|
|
||||||
- if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
|
|
||||||
echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin &&
|
|
||||||
if [ "${TRAVIS_BRANCH}" == "master" ]; then
|
|
||||||
echo "Pushing latest";
|
|
||||||
until docker push "${IMAGE}:${PHP}-base"; do sleep 1; done;
|
|
||||||
until docker push "${IMAGE}:${PHP}-mods"; do sleep 1; done;
|
|
||||||
until docker push "${IMAGE}:${PHP}-prod"; do sleep 1; done;
|
|
||||||
until docker push "${IMAGE}:${PHP}-work"; do sleep 1; done;
|
|
||||||
elif [[ ${TRAVIS_BRANCH} =~ ^(release-[.0-9]+)$ ]]; then
|
|
||||||
echo "Pushing branch ${TRAVIS_BRANCH}";
|
|
||||||
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}" &&
|
|
||||||
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}" &&
|
|
||||||
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}" &&
|
|
||||||
docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}" &&
|
|
||||||
until docker push "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}"; do sleep 1; done;
|
|
||||||
until docker push "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}"; do sleep 1; done;
|
|
||||||
until docker push "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}"; do sleep 1; done;
|
|
||||||
until docker push "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}"; do sleep 1; done;
|
|
||||||
elif [ -n "${TRAVIS_TAG}" ]; then
|
|
||||||
echo "Pushing tag ${TRAVIS_TAG}";
|
|
||||||
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_TAG}" &&
|
|
||||||
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}" &&
|
|
||||||
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}" &&
|
|
||||||
docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${TRAVIS_TAG}" &&
|
|
||||||
until docker push "${IMAGE}:${PHP}-base-${TRAVIS_TAG}"; do sleep 1; done;
|
|
||||||
until docker push "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}"; do sleep 1; done;
|
|
||||||
until docker push "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}"; do sleep 1; done;
|
|
||||||
until docker push "${IMAGE}:${PHP}-work-${TRAVIS_TAG}"; do sleep 1; done;
|
|
||||||
elif [ "${TRAVIS_EVENT_TYPE}" = "cron" ]; then
|
|
||||||
if MY_TAG="$( git describe --exact-match "$(git rev-parse HEAD)" 2>/dev/null )"; then
|
|
||||||
echo "Pushing cron tag ${MY_TAG}";
|
|
||||||
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${MY_TAG}" &&
|
|
||||||
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${MY_TAG}" &&
|
|
||||||
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${MY_TAG}" &&
|
|
||||||
docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${MY_TAG}" &&
|
|
||||||
until docker push "${IMAGE}:${PHP}-base-${MY_TAG}"; do sleep 1; done;
|
|
||||||
until docker push "${IMAGE}:${PHP}-mods-${MY_TAG}"; do sleep 1; done;
|
|
||||||
until docker push "${IMAGE}:${PHP}-prod-${MY_TAG}"; do sleep 1; done;
|
|
||||||
until docker push "${IMAGE}:${PHP}-work-${MY_TAG}"; do sleep 1; done;
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Skipping push to dockerhub on normal branches";
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Skipping push to dockerhub on PR";
|
|
||||||
fi
|
|
||||||
14
.yamllint
Normal file
14
.yamllint
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
# Use 'default' rules
|
||||||
|
extends: default
|
||||||
|
|
||||||
|
# Overwrite above default rules
|
||||||
|
rules:
|
||||||
|
colons:
|
||||||
|
max-spaces-before: 0
|
||||||
|
max-spaces-after: 60
|
||||||
|
comments:
|
||||||
|
require-starting-space: false
|
||||||
|
min-spaces-from-content: 1
|
||||||
|
line-length: disable
|
||||||
|
truthy: disable
|
||||||
190
CHANGELOG.md
Normal file
190
CHANGELOG.md
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
|
||||||
|
## Unreleased
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.122
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- Added `apcu`, `blackfire`, `igbinary`, `imap`, `mcrypt`, `memcache`, `msgpack`, `oauth`, `psr`, `solr`, `xlswriter`, `yaml` to PHP 8.0
|
||||||
|
- Added `apcu`, `igbinary`, `imap`, `mcrypt`, `memcache`, `msgpack`, `oauth`, `psr`, `solr`, `xlswriter`, `yaml` to PHP 8.1
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- Migrate from Travis CI to GitHub Actions
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.121
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fixed `msgpack` install for PHP 7.0 - 7.4
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- Compile `redis` extension with `msgpack` and `igbinary`
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.120
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fixed `zsh` install for PHP 5.6 and 7.0
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.119
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fixed `drupal` (drupal console launcher) for PHP 5.5, 5.6, 7.0 and 7.1
|
||||||
|
- Fixed `zsh` install for PHP 5.6 and 7.0
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.118
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fixed `mdl` rubygem
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- [#182](https://github.com/devilbox/docker-php-fpm/issues/182) Added `ioncube` to PHP 7.4
|
||||||
|
- Added `sqlsrv` to PHP 7.4
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- Updated xdebug to latest possible version
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.117
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- [#755](https://github.com/cytopia/devilbox/issues/755) Add .composer/vendir/bin to $PATH variable
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- [#692](https://github.com/cytopia/devilbox/issues/692) Add custom supervisor config mountpoint
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.116
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- [#749](https://github.com/cytopia/devilbox/issues/749) Fix to disable PHP modules without trailing `*.so` extension
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.115
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- [#703](https://github.com/cytopia/devilbox/issues/703) Don't fail on uid/gid change
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.114
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Use latest PHP 8.0 image
|
||||||
|
- Disabled gd-jis: https://bugs.php.net/bug.php?id=73582
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- Add PHP 8.1
|
||||||
|
- PHP module mongodb is added to PHP 8.0
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- Composer is updated to v2 (/usr/local/bin/composer)
|
||||||
|
- Composer is available as v1 and v2 (/usr/local/bin/composer-[12])
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.113
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fixes nightly build pipeline
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.112
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fixes [166](https://github.com/devilbox/docker-php-fpm/issues/166) Missing `locale-gen` binary
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- Added vips extension
|
||||||
|
- Added xlswriter extension
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.111
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- Added xdebug for PHP 8.0
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.110
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- [169](https://github.com/devilbox/docker-php-fpm/issues/169) Fixes download for drupal console
|
||||||
|
- Fixes laravel installer for PHP 7.2
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.109
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fixed absolute paths in tests
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.108
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- Added ghostscript
|
||||||
|
- Added gsfonts
|
||||||
|
- Added imagick PDF support (via ghostscript)
|
||||||
|
- Added mupdf and mupdf-tools
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fixes Ansible installation
|
||||||
|
- Fixes MongoDB for PHP 5.6
|
||||||
|
- Fixes Redis for PHP 8.0
|
||||||
|
- Fixes policy.xml for Imagick
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- Stricter version check for installed tools
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.107
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fixes login to Dockerhub for CI jobs
|
||||||
|
- Fixes imagick segfault by setting its threads to 1
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- Re-added imap for PHP 7.4
|
||||||
|
- Adding `certbot` binary
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.106
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- [#153](https://github.com/devilbox/docker-php-fpm/pull/153) Use numeric order for startup files
|
||||||
|
- Fix build of PHP-FPM 7.4 snmp module
|
||||||
|
- Disable PHP-FPM 8.0 uploadprogress module due to startup warnings
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.105
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fix pdo_sqlsrv install for PHP 7.1
|
||||||
|
- Fix sqlsrv install for PHP 7.1
|
||||||
|
- Fix composer memory issues during install
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- `phalcon` binary for PHP 7.3 and 7.4
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.104
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fix xdebug install for PHP 7.0
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.103
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- Add PHP [yaml](https://pecl.php.net/package/yaml) module
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.102
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- [#144](https://github.com/devilbox/docker-php-fpm/issues/144) Added CHANGELOG
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- [#123](https://github.com/devilbox/docker-php-fpm/issues/123) Added Dart Sass and removed Ruby Sass
|
||||||
|
- Replace [scss-lint](https://github.com/sds/scss-lint) with [stylelint](https://github.com/stylelint/stylelint)
|
||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.2 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.2-base" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.2-base"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-base"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-base"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
|||||||
###
|
###
|
||||||
### User/Group
|
### User/Group
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||||
|
|
||||||
@@ -35,7 +43,14 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
|
&& rm -f /etc/apt/sources.list \
|
||||||
|
&& { \
|
||||||
|
echo "deb http://ftp.debian.org/debian jessie main"; \
|
||||||
|
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
||||||
|
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
||||||
|
} | tee /etc/apt/sources.list
|
||||||
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
&& 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,7 +59,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Configure
|
### Configure
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||||
&& mkdir -p /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/session \
|
||||||
@@ -66,7 +81,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -92,4 +107,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.3 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.3-base" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.3-base"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.3-base"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-base"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
|||||||
###
|
###
|
||||||
### User/Group
|
### User/Group
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||||
|
|
||||||
@@ -35,7 +43,14 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
|
&& rm -f /etc/apt/sources.list \
|
||||||
|
&& { \
|
||||||
|
echo "deb http://ftp.debian.org/debian jessie main"; \
|
||||||
|
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
||||||
|
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
||||||
|
} | tee /etc/apt/sources.list
|
||||||
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
&& 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,7 +59,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Configure
|
### Configure
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||||
&& mkdir -p /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/session \
|
||||||
@@ -66,7 +81,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -92,4 +107,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.4 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.4-base" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.4-base"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.4-base"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-base"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
|||||||
###
|
###
|
||||||
### User/Group
|
### User/Group
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||||
|
|
||||||
@@ -35,7 +43,14 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
|
&& rm -f /etc/apt/sources.list \
|
||||||
|
&& { \
|
||||||
|
echo "deb http://ftp.debian.org/debian jessie main"; \
|
||||||
|
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
||||||
|
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
||||||
|
} | tee /etc/apt/sources.list
|
||||||
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
&& 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,7 +59,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Configure
|
### Configure
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||||
&& mkdir -p /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/session \
|
||||||
@@ -66,7 +81,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -92,4 +107,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.5 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.5-base" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.5-base"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.5-base"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-base"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
|||||||
###
|
###
|
||||||
### User/Group
|
### User/Group
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||||
|
|
||||||
@@ -35,7 +43,14 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
|
&& rm -f /etc/apt/sources.list \
|
||||||
|
&& { \
|
||||||
|
echo "deb http://ftp.debian.org/debian jessie main"; \
|
||||||
|
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
||||||
|
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
||||||
|
} | tee /etc/apt/sources.list
|
||||||
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
&& 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,7 +59,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Configure
|
### Configure
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||||
&& mkdir -p /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/session \
|
||||||
@@ -66,7 +81,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -92,4 +107,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.6 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.6-base" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.6-base"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.6-base"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-base"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
|||||||
###
|
###
|
||||||
### User/Group
|
### User/Group
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||||
|
|
||||||
@@ -35,7 +43,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 procps \
|
&& 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,7 +52,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Configure
|
### Configure
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||||
&& mkdir -p /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/session \
|
||||||
@@ -66,7 +74,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -92,4 +100,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 7.0 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="7.0-base" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="7.0-base"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 7.0-base"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-base"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
|||||||
###
|
###
|
||||||
### User/Group
|
### User/Group
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||||
|
|
||||||
@@ -35,7 +43,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 procps \
|
&& 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,7 +52,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Configure
|
### Configure
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||||
&& mkdir -p /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/session \
|
||||||
@@ -66,7 +74,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -92,4 +100,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 7.1 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="7.1-base" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="7.1-base"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 7.1-base"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-base"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
|||||||
###
|
###
|
||||||
### User/Group
|
### User/Group
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||||
|
|
||||||
@@ -35,7 +43,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 procps \
|
&& 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,7 +52,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Configure
|
### Configure
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||||
&& mkdir -p /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/session \
|
||||||
@@ -66,7 +74,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -92,4 +100,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 7.2 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="7.2-base" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="7.2-base"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 7.2-base"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-base"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
|||||||
###
|
###
|
||||||
### User/Group
|
### User/Group
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||||
|
|
||||||
@@ -35,7 +43,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 procps \
|
&& 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,7 +52,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Configure
|
### Configure
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||||
&& mkdir -p /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/session \
|
||||||
@@ -66,7 +74,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -92,4 +100,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 7.3 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="7.3-base" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="7.3-base"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 7.3-base"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-base"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
|||||||
###
|
###
|
||||||
### User/Group
|
### User/Group
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||||
|
|
||||||
@@ -35,7 +43,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 procps \
|
&& 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,7 +52,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Configure
|
### Configure
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||||
&& mkdir -p /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/session \
|
||||||
@@ -66,7 +74,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -92,4 +100,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -1,17 +1,25 @@
|
|||||||
# 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 devilbox/php-fpm-7.4
|
FROM php:7.4-fpm
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 7.4 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="7.4-base" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="7.4-base"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 7.4-base"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-base"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
|||||||
###
|
###
|
||||||
### User/Group
|
### User/Group
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||||
|
|
||||||
@@ -35,7 +43,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 procps \
|
&& 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,7 +52,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Configure
|
### Configure
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||||
&& mkdir -p /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/session \
|
||||||
@@ -66,7 +74,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -92,4 +100,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 8.0 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="8.0-base" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="8.0-base"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-base"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-base"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
|||||||
###
|
###
|
||||||
### User/Group
|
### User/Group
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||||
|
|
||||||
@@ -35,7 +43,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 procps \
|
&& 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,7 +52,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Configure
|
### Configure
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||||
&& mkdir -p /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/session \
|
||||||
@@ -66,7 +74,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.0' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.0' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -92,4 +100,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
104
Dockerfiles/base/Dockerfile-8.1
Normal file
104
Dockerfiles/base/Dockerfile-8.1
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||||
|
FROM devilbox/php-fpm-8.1
|
||||||
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Labels
|
||||||
|
###
|
||||||
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="8.1-base"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 8.1-base"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-base"
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Envs
|
||||||
|
###
|
||||||
|
ENV MY_USER="devilbox" \
|
||||||
|
MY_GROUP="devilbox" \
|
||||||
|
MY_UID="1000" \
|
||||||
|
MY_GID="1000" \
|
||||||
|
PHP_VERSION="8.1"
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### User/Group
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||||
|
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Upgrade (install ps)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Configure
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||||
|
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||||
|
&& mkdir -p /var/lib/php/session \
|
||||||
|
&& mkdir -p /var/lib/php/wsdlcache \
|
||||||
|
&& chown -R devilbox:devilbox /var/lib/php/session \
|
||||||
|
&& chown -R devilbox:devilbox /var/lib/php/wsdlcache
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Copy files
|
||||||
|
###
|
||||||
|
COPY ./data/php-ini.d/php-8.1.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||||
|
COPY ./data/php-fpm.conf/php-fpm-8.1.conf /usr/local/etc/php-fpm.conf
|
||||||
|
|
||||||
|
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||||
|
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Verify
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.1' \
|
||||||
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
|
\
|
||||||
|
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||||
|
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||||
|
\
|
||||||
|
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||||
|
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||||
|
&& rm -f /usr/local/etc/php/php.ini
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Ports
|
||||||
|
###
|
||||||
|
EXPOSE 9000
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Entrypoint
|
||||||
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
@@ -60,10 +60,18 @@ set_uid() {
|
|||||||
fi
|
fi
|
||||||
# Change uid and fix homedir permissions
|
# Change uid and fix homedir permissions
|
||||||
log "info" "Changing user '${username}' uid to: ${uid}" "${debug}"
|
log "info" "Changing user '${username}' uid to: ${uid}" "${debug}"
|
||||||
run "usermod -u ${uid} ${username}" "${debug}"
|
if ! run "usermod -u ${uid} ${username} 2>/dev/null" "${debug}"; then
|
||||||
run "chown -R ${username} ${homedir}" "${debug}"
|
run "usermod -u ${uid} ${username}" "${debug}"
|
||||||
|
fi
|
||||||
|
run "chown -R ${username} ${homedir} 2>/dev/null || true" "${debug}"
|
||||||
run "chown -R ${username} /var/lib/php/session" "${debug}"
|
run "chown -R ${username} /var/lib/php/session" "${debug}"
|
||||||
run "chown -R ${username} /var/lib/php/wsdlcache" "${debug}"
|
run "chown -R ${username} /var/lib/php/wsdlcache" "${debug}"
|
||||||
|
if [ -f "/var/spool/mail/devilbox" ]; then
|
||||||
|
run "chown -R ${username} /var/spool/mail/devilbox" "${debug}"
|
||||||
|
fi
|
||||||
|
if [ -d "/etc/supervisor/custom.d" ]; then
|
||||||
|
run "chown -R ${username} /etc/supervisor/custom.d" "${debug}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -100,12 +108,20 @@ set_gid() {
|
|||||||
run "groupmod -g ${spare_gid} ${target_groupname}" "${debug}"
|
run "groupmod -g ${spare_gid} ${target_groupname}" "${debug}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
# Change ugd and fix homedir permissions
|
# Change gid and fix homedir permissions
|
||||||
log "info" "Changing group '${groupname}' gid to: ${gid}" "${debug}"
|
log "info" "Changing group '${groupname}' gid to: ${gid}" "${debug}"
|
||||||
run "groupmod -g ${gid} ${groupname}" "${debug}"
|
if ! run "groupmod -g ${gid} ${groupname} 2>/dev/null" "${debug}"; then
|
||||||
run "chown -R :${groupname} ${homedir}" "${debug}"
|
run "groupmod -g ${gid} ${groupname}" "${debug}"
|
||||||
|
fi
|
||||||
|
run "chown -R :${groupname} ${homedir} 2>/dev/null || true" "${debug}"
|
||||||
run "chown -R :${groupname} /var/lib/php/session" "${debug}"
|
run "chown -R :${groupname} /var/lib/php/session" "${debug}"
|
||||||
run "chown -R :${groupname} /var/lib/php/wsdlcache" "${debug}"
|
run "chown -R :${groupname} /var/lib/php/wsdlcache" "${debug}"
|
||||||
|
if [ -f "/var/spool/mail/devilbox" ]; then
|
||||||
|
run "chown -R :${groupname} /var/spool/mail/devilbox" "${debug}"
|
||||||
|
fi
|
||||||
|
if [ -d "/etc/supervisor/custom.d" ]; then
|
||||||
|
run "chown -R :${groupname} /etc/supervisor/custom.d" "${debug}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
set -u
|
set -u
|
||||||
set -p pipefail
|
set -o pipefail
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -52,4 +52,4 @@ set_gid "NEW_GID" "${MY_GROUP}" "/home/${MY_USER}" "${DEBUG_LEVEL}"
|
|||||||
### Startup
|
### Startup
|
||||||
###
|
###
|
||||||
log "info" "Starting $( php-fpm -v 2>&1 | head -1 )" "${DEBUG_LEVEL}"
|
log "info" "Starting $( php-fpm -v 2>&1 | head -1 )" "${DEBUG_LEVEL}"
|
||||||
exec /usr/local/sbin/php-fpm
|
exec "${@}"
|
||||||
|
|||||||
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.1.conf
Normal file
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.1.conf
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
; ################################################################################
|
||||||
|
; ####
|
||||||
|
; #### The following settings can be overwritten by later includes
|
||||||
|
; ####
|
||||||
|
; ################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; Timeouts
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
[www]
|
||||||
|
; The timeout for serving a single request after which the worker process will be killed.
|
||||||
|
; This option should be used when the 'max_execution_time' ini option does not stop script
|
||||||
|
; execution for some reason.
|
||||||
|
request_terminate_timeout = 120s
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; Logging
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
[global]
|
||||||
|
error_log = /proc/self/fd/2
|
||||||
|
log_level = notice
|
||||||
|
|
||||||
|
[www]
|
||||||
|
; if we send this to /proc/self/fd/1, it never appears
|
||||||
|
access.log = /proc/self/fd/2
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; Backlog configuration
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
[www]
|
||||||
|
; A maximum of backlog incoming connections will be queued for processing.
|
||||||
|
; If a connection request arrives with the queue full the client may receive an error with an
|
||||||
|
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
|
||||||
|
; the request may be ignored so that retries may succeed.
|
||||||
|
|
||||||
|
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
|
||||||
|
; are silently truncated
|
||||||
|
listen.backlog = 1024
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; Worker configuration
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
[www]
|
||||||
|
; static - the number of child processes is fixed (pm.max_children).
|
||||||
|
;
|
||||||
|
; dynamic - the number of child processes is set dynamically based on the following directives:
|
||||||
|
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
|
||||||
|
;
|
||||||
|
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
|
||||||
|
; pm.start_servers are started when the service is started.
|
||||||
|
pm = ondemand
|
||||||
|
|
||||||
|
; The maximum number of child processes to be created
|
||||||
|
pm.max_children = 50
|
||||||
|
|
||||||
|
; The number of child processes created on startup. Used only when pm is set to dynamic.
|
||||||
|
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
|
||||||
|
pm.start_servers = 4
|
||||||
|
|
||||||
|
; The desired minimum number of idle server processes.
|
||||||
|
pm.min_spare_servers = 2
|
||||||
|
|
||||||
|
; The desired maximum number of idle server processes.
|
||||||
|
pm.max_spare_servers = 6
|
||||||
|
|
||||||
|
; The number of requests each child process should execute before respawning.
|
||||||
|
; This can be useful to work around memory leaks in 3rd party libraries.
|
||||||
|
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
|
||||||
|
; Default value: 0.
|
||||||
|
pm.max_requests = 500
|
||||||
|
|
||||||
|
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
|
||||||
|
pm.process_idle_timeout = 10s
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; Include
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
|
||||||
|
[global]
|
||||||
|
include = /usr/local/etc/php-fpm.d/*.conf
|
||||||
|
|
||||||
|
|
||||||
|
; ################################################################################
|
||||||
|
; ####
|
||||||
|
; #### The following settings overwrite any includes again
|
||||||
|
; ####
|
||||||
|
; ################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; Required for Dockerization
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
[global]
|
||||||
|
daemonize = no
|
||||||
|
|
||||||
|
[www]
|
||||||
|
; Keep env variables set by docker
|
||||||
|
clear_env = no
|
||||||
|
|
||||||
|
; Redirect worker stdout and stderr into main error log. If not set, stdout and
|
||||||
|
; stderr will be redirected to /dev/null according to FastCGI specs.
|
||||||
|
; Note: on highloaded environement, this can cause some delay in the page
|
||||||
|
; process time (several ms).
|
||||||
|
; Default Value: no
|
||||||
|
catch_workers_output = yes
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; User and Group
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
[www]
|
||||||
|
user = devilbox
|
||||||
|
group = devilbox
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; Networking
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
[www]
|
||||||
|
; Ensure to listen here
|
||||||
|
listen = 9000
|
||||||
49
Dockerfiles/base/data/php-ini.d/php-8.1.ini
Normal file
49
Dockerfiles/base/data/php-ini.d/php-8.1.ini
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
; ############################################################
|
||||||
|
; # Devilbox PHP defaults for 8.1-base
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
; Each PHP flavour (base, mods, prod, work) might have its own php.ini.
|
||||||
|
; If none is present, the one from the previous flavour is inherited.
|
||||||
|
|
||||||
|
|
||||||
|
[PHP]
|
||||||
|
|
||||||
|
; Memory
|
||||||
|
; Note: "memory_limit" should be larger than "post_max_size"
|
||||||
|
memory_limit = 512M
|
||||||
|
|
||||||
|
|
||||||
|
; Timeouts
|
||||||
|
max_execution_time = 120
|
||||||
|
max_input_time = 120
|
||||||
|
|
||||||
|
|
||||||
|
; Uploads
|
||||||
|
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||||
|
post_max_size = 72M
|
||||||
|
upload_max_filesize = 64M
|
||||||
|
max_file_uploads = 20
|
||||||
|
|
||||||
|
|
||||||
|
; Vars
|
||||||
|
variables_order = EGPCS
|
||||||
|
max_input_vars = 8000
|
||||||
|
max_input_nesting_level = 64
|
||||||
|
|
||||||
|
|
||||||
|
; Error reporting
|
||||||
|
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||||
|
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||||
|
xmlrpc_errors = Off
|
||||||
|
report_memleaks = On
|
||||||
|
display_errors = Off
|
||||||
|
display_startup_errors = Off
|
||||||
|
log_errors = On
|
||||||
|
html_errors = Off
|
||||||
|
|
||||||
|
|
||||||
|
; Xdebug settings
|
||||||
|
xdebug.default_enable = Off
|
||||||
|
xdebug.profiler_enable = Off
|
||||||
|
xdebug.remote_enable = Off
|
||||||
|
xdebug.remote_autostart = Off
|
||||||
@@ -1,59 +1,578 @@
|
|||||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||||
FROM devilbox/php-fpm:5.2-base
|
FROM devilbox/php-fpm:5.2-base as builder
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
firebird-dev \
|
||||||
|
freetds-dev \
|
||||||
|
libbz2-dev \
|
||||||
|
libc-client-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libenchant-dev \
|
||||||
|
libevent-dev \
|
||||||
|
libfbclient2 \
|
||||||
|
libfreetype6-dev \
|
||||||
|
libib-util \
|
||||||
|
libicu-dev \
|
||||||
|
libjpeg-dev \
|
||||||
|
libkrb5-dev \
|
||||||
|
libldap2-dev \
|
||||||
|
libmagic-dev \
|
||||||
|
libmcrypt-dev \
|
||||||
|
libmemcached-dev \
|
||||||
|
libpcre3-dev \
|
||||||
|
libpng-dev \
|
||||||
|
libpq-dev \
|
||||||
|
libpspell-dev \
|
||||||
|
librabbitmq-dev \
|
||||||
|
librecode-dev \
|
||||||
|
libsasl2-dev \
|
||||||
|
libsnmp-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libtidy-dev \
|
||||||
|
libvpx-dev \
|
||||||
|
libxml2-dev \
|
||||||
|
libxpm-dev \
|
||||||
|
libxslt-dev \
|
||||||
|
snmp \
|
||||||
|
zlib1g-dev \
|
||||||
|
ca-certificates \
|
||||||
|
git
|
||||||
|
|
||||||
|
|
||||||
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
|
RUN set -eux \
|
||||||
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install and enable PHP modules
|
||||||
|
###
|
||||||
|
# Enable ffi if it exists
|
||||||
|
RUN set -eux \
|
||||||
|
&& if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \
|
||||||
|
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Custom extension
|
||||||
|
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||||
|
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||||
|
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||||
|
&& tar xvfz ioncube.tar.gz \
|
||||||
|
&& cd ioncube \
|
||||||
|
&& cp "ioncube_loader_lin_5.2.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||||
|
&& cd ../ \
|
||||||
|
&& rm -rf ioncube \
|
||||||
|
&& rm -rf ioncube.tar.gz \
|
||||||
|
\
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: amqp --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install amqp-1.4.0 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable amqp \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: bcmath --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: bz2 --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: calendar --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: dba --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: enchant --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Custom: Pecl command
|
||||||
|
&& echo "/usr" | pecl install enchant \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable enchant \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: exif --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: fileinfo --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install fileinfo \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable fileinfo \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: ftp --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure ftp --with-openssl-dir \
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: gd --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Version specific pre-command
|
||||||
|
&& ln -s /usr/lib/x86_64-linux-gnu/libjpeg.* /usr/lib/ && \
|
||||||
|
ln -s /usr/lib/x86_64-linux-gnu/libpng.* /usr/lib/ && \
|
||||||
|
ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && \
|
||||||
|
mkdir /usr/include/freetype2/freetype && \
|
||||||
|
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||||
|
\
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure gd --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf \
|
||||||
|
# Installation
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: gettext --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: igbinary --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install igbinary-2.0.7 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable igbinary \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: imap --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Generic pre-command
|
||||||
|
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: interbase --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: intl --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install intl \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable intl \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: ldap --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Generic pre-command
|
||||||
|
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Installation
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install msgpack-0.5.7 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable msgpack \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: memcache --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install memcache-2.2.7 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable memcache \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: memcached --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install memcached-2.1.0 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable memcached \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: mongo --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Custom: Pecl command
|
||||||
|
&& yes yes | pecl install mongo-1.5.8 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable mongo \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: oauth --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install oauth-1.2.3 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable oauth \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: opcache --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Custom: Pecl command
|
||||||
|
&& pecl install zendopcache \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable opcache \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pcntl --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Generic pre-command
|
||||||
|
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pdo_firebird --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pdo_pgsql --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pgsql --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: phar --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install phar \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable phar \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pspell --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: recode --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: redis --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install redis-2.2.7 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable redis \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: shmop --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: snmp --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: sockets --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: sysvsem --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: sysvshm --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: tidy --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Installation
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install uploadprogress \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable uploadprogress \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: wddx --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure wddx --with-libxml-dir=/usr \
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: xdebug --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install xdebug-2.2.7 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable xdebug \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: xmlrpc --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: xsl --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: zip --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||||
|
# Installation
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Fix php.ini settings for enabled extensions
|
||||||
|
RUN set -eux \
|
||||||
|
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||||
|
|
||||||
|
# Fix oracle dir for images that don't have oci installed
|
||||||
|
RUN set -eux \
|
||||||
|
&& mkdir -p /usr/lib/oracle/
|
||||||
|
|
||||||
|
# Shrink everything down
|
||||||
|
RUN set -eux \
|
||||||
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||||
|
FROM devilbox/php-fpm:5.2-base as final
|
||||||
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.2 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.2-mods" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.2-mods"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-mods"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-mods"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Envs
|
### Copy artifacts from builder
|
||||||
###
|
###
|
||||||
ENV BUILD_DEPS \
|
ARG EXT_DIR
|
||||||
firebird-dev \
|
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||||
freetds-dev \
|
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||||
libbz2-dev \
|
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||||
libc-client-dev \
|
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||||
libcurl4-openssl-dev \
|
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||||
libenchant-dev \
|
|
||||||
libevent-dev \
|
|
||||||
libfbclient2 \
|
|
||||||
libfreetype6-dev \
|
|
||||||
libib-util \
|
|
||||||
libicu-dev \
|
|
||||||
libjpeg-dev \
|
|
||||||
libkrb5-dev \
|
|
||||||
libldap2-dev \
|
|
||||||
libmagic-dev \
|
|
||||||
libmcrypt-dev \
|
|
||||||
libmemcached-dev \
|
|
||||||
libpng-dev \
|
|
||||||
libpq-dev \
|
|
||||||
libpspell-dev \
|
|
||||||
librabbitmq-dev \
|
|
||||||
librecode-dev \
|
|
||||||
libsasl2-dev \
|
|
||||||
libsnmp-dev \
|
|
||||||
libssl-dev \
|
|
||||||
libtidy-dev \
|
|
||||||
libvpx-dev \
|
|
||||||
libxml2-dev \
|
|
||||||
libxpm-dev \
|
|
||||||
libxslt-dev \
|
|
||||||
snmp \
|
|
||||||
zlib1g-dev \
|
|
||||||
ca-certificates \
|
|
||||||
git
|
|
||||||
|
|
||||||
ENV RUN_DEPS \
|
|
||||||
|
###
|
||||||
|
### Install
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
libaspell15 \
|
libaspell15 \
|
||||||
libc-client2007e \
|
libc-client2007e \
|
||||||
libenchant1c2a \
|
libenchant1c2a \
|
||||||
@@ -74,307 +593,19 @@ ENV RUN_DEPS \
|
|||||||
libxpm4 \
|
libxpm4 \
|
||||||
libxslt1.1 \
|
libxslt1.1 \
|
||||||
snmp \
|
snmp \
|
||||||
ca-certificates
|
ca-certificates \
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Install
|
|
||||||
###
|
|
||||||
RUN set -x \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
${BUILD_DEPS} \
|
|
||||||
\
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: ioncube ----
|
|
||||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
|
||||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
|
||||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
|
||||||
&& tar xvfz ioncube.tar.gz \
|
|
||||||
&& cd ioncube \
|
|
||||||
&& cp "ioncube_loader_lin_5.2.so" "${EXTENSION_DIR}/ioncube.so" \
|
|
||||||
&& cd ../ \
|
|
||||||
&& rm -rf ioncube \
|
|
||||||
&& rm -rf ioncube.tar.gz \
|
|
||||||
\
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/ioncube || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/ioncube || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: amqp ----
|
|
||||||
&& pecl install amqp-1.4.0 \
|
|
||||||
&& docker-php-ext-enable amqp \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/amqp || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/amqp || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: bcmath ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/bcmath || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/bcmath || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: bz2 ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/bz2 || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/bz2 || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: calendar ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/calendar || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/calendar || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: dba ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/dba || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/dba || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: enchant ----
|
|
||||||
&& echo "/usr" | pecl install enchant \
|
|
||||||
&& docker-php-ext-enable enchant \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/enchant || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/enchant || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: exif ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/exif || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/exif || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: fileinfo ----
|
|
||||||
&& pecl install fileinfo \
|
|
||||||
&& docker-php-ext-enable fileinfo \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/fileinfo || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/fileinfo || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: ftp ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/ftp || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/ftp || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: gd ----
|
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libjpeg.* /usr/lib/ && \
|
|
||||||
ln -s /usr/lib/x86_64-linux-gnu/libpng.* /usr/lib/ && \
|
|
||||||
ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && \
|
|
||||||
mkdir /usr/include/freetype2/freetype && \
|
|
||||||
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
|
||||||
\
|
|
||||||
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/gd || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/gd || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: gettext ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/gettext || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/gettext || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: igbinary ----
|
|
||||||
&& pecl install igbinary-2.0.7 \
|
|
||||||
&& docker-php-ext-enable igbinary \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: imap ----
|
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
|
||||||
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/imap || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/imap || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: interbase ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/interbase || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/interbase || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: intl ----
|
|
||||||
&& pecl install intl \
|
|
||||||
&& docker-php-ext-enable intl \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/intl || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/intl || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: ldap ----
|
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
|
||||||
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/ldap || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/ldap || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: mcrypt ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/mcrypt || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/mcrypt || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: msgpack ----
|
|
||||||
&& pecl install msgpack-0.5.7 \
|
|
||||||
&& docker-php-ext-enable msgpack \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/msgpack || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/msgpack || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: memcache ----
|
|
||||||
&& pecl install memcache \
|
|
||||||
&& docker-php-ext-enable memcache \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/memcache || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/memcache || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: memcached ----
|
|
||||||
&& pecl install memcached-2.1.0 \
|
|
||||||
&& docker-php-ext-enable memcached \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/memcached || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/memcached || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: mongo ----
|
|
||||||
&& yes | pecl install mongo-1.5.8 \
|
|
||||||
&& docker-php-ext-enable mongo \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/mongo || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/mongo || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: opcache ----
|
|
||||||
&& pecl install zendopcache \
|
|
||||||
&& docker-php-ext-enable opcache \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/opcache || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/opcache || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: pcntl ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/pcntl || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/pcntl || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: pdo_dblib ----
|
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: pdo_firebird ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: pdo_pgsql ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: pgsql ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/pgsql || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/pgsql || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: phar ----
|
|
||||||
&& pecl install phar \
|
|
||||||
&& docker-php-ext-enable phar \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/phar || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/phar || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: pspell ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/pspell || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/pspell || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: recode ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/recode || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/recode || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: redis ----
|
|
||||||
&& pecl install redis-2.2.7 \
|
|
||||||
&& docker-php-ext-enable redis \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/redis || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/redis || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: shmop ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/shmop || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/shmop || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: snmp ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/snmp || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/snmp || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: sockets ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/sockets || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/sockets || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: sysvmsg ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/sysvmsg || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: sysvsem ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/sysvsem || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/sysvsem || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: sysvshm ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/sysvshm || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/sysvshm || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: tidy ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/tidy || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/tidy || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: uploadprogress ----
|
|
||||||
&& pecl install uploadprogress \
|
|
||||||
&& docker-php-ext-enable uploadprogress \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/uploadprogress || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: wddx ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/wddx || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/wddx || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: xdebug ----
|
|
||||||
&& pecl install xdebug-2.2.7 \
|
|
||||||
&& docker-php-ext-enable xdebug \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/xdebug || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/xdebug || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: xmlrpc ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/xmlrpc || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: xsl ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/xsl || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/xsl || true) \
|
|
||||||
\
|
|
||||||
# ---- Installing PHP Extension: zip ----
|
|
||||||
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
|
||||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/zip || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/zip || true) \
|
|
||||||
\
|
|
||||||
&& if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \
|
|
||||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
|
||||||
fi \
|
|
||||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \
|
|
||||||
&& rm -rf /tmp/* \
|
|
||||||
\
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& update-ca-certificates \
|
&& update-ca-certificates
|
||||||
\
|
|
||||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
|
||||||
&& (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Post Install
|
||||||
|
###
|
||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -454,6 +685,8 @@ RUN set -x \
|
|||||||
&& php-fpm -m | grep -oiE '^mysql$' \
|
&& php-fpm -m | grep -oiE '^mysql$' \
|
||||||
&& php -m | grep -oiE '^mysqli$' \
|
&& php -m | grep -oiE '^mysqli$' \
|
||||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||||
|
&& php -m | grep -oiE '^oauth$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||||
&& php -m | grep -oiE '^Zend Opcache$' \
|
&& php -m | grep -oiE '^Zend Opcache$' \
|
||||||
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
|
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
|
||||||
&& php -m | grep -oiE '^openssl$' \
|
&& php -m | grep -oiE '^openssl$' \
|
||||||
@@ -543,4 +776,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
875
Dockerfiles/mods/Dockerfile-8.1
Normal file
875
Dockerfiles/mods/Dockerfile-8.1
Normal file
@@ -0,0 +1,875 @@
|
|||||||
|
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||||
|
FROM devilbox/php-fpm:8.1-base as builder
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
alien \
|
||||||
|
firebird-dev \
|
||||||
|
freetds-dev \
|
||||||
|
libaio-dev \
|
||||||
|
libbz2-dev \
|
||||||
|
libc-client-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libenchant-dev \
|
||||||
|
libevent-dev \
|
||||||
|
libfbclient2 \
|
||||||
|
libfreetype6-dev \
|
||||||
|
libgmp-dev \
|
||||||
|
libib-util \
|
||||||
|
libicu-dev \
|
||||||
|
libjpeg-dev \
|
||||||
|
libkrb5-dev \
|
||||||
|
libldap2-dev \
|
||||||
|
libmcrypt-dev \
|
||||||
|
libmemcached-dev \
|
||||||
|
libpcre3-dev \
|
||||||
|
libpng-dev \
|
||||||
|
libpq-dev \
|
||||||
|
libpspell-dev \
|
||||||
|
libsasl2-dev \
|
||||||
|
libsnmp-dev \
|
||||||
|
libsodium-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libtidy-dev \
|
||||||
|
libvpx-dev \
|
||||||
|
libwebp-dev \
|
||||||
|
libxml2-dev \
|
||||||
|
libxpm-dev \
|
||||||
|
libxslt-dev \
|
||||||
|
libyaml-dev \
|
||||||
|
libzip-dev \
|
||||||
|
snmp \
|
||||||
|
zlib1g-dev \
|
||||||
|
ca-certificates \
|
||||||
|
git
|
||||||
|
|
||||||
|
|
||||||
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
|
RUN set -eux \
|
||||||
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install and enable PHP modules
|
||||||
|
###
|
||||||
|
# Enable ffi if it exists
|
||||||
|
RUN set -eux \
|
||||||
|
&& if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \
|
||||||
|
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: apcu --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install apcu \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable apcu \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: bcmath --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: bz2 --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: calendar --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: dba --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: enchant --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: exif --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: gd --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Generic pre-command
|
||||||
|
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype \
|
||||||
|
# Installation
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: gettext --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: gmp --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Generic pre-command
|
||||||
|
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: igbinary --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install igbinary \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable igbinary \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: imap --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Generic pre-command
|
||||||
|
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: intl --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: ldap --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Generic pre-command
|
||||||
|
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install mcrypt \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable mcrypt \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install msgpack \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable msgpack \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: memcache --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install memcache \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable memcache \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: memcached --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: GIT extension
|
||||||
|
&& git clone https://github.com/php-memcached-dev/php-memcached /tmp/memcached \
|
||||||
|
&& cd /tmp/memcached \
|
||||||
|
# Custom: Branch
|
||||||
|
&& git checkout master \
|
||||||
|
# Custom: Install command
|
||||||
|
&& 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
|
||||||
|
&& docker-php-ext-enable memcached \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: mongodb --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install mongodb \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable mongodb \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: oauth --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install oauth \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable oauth \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Generic pre-command
|
||||||
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
|
\
|
||||||
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
|
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
\
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||||
|
# Generic post-command
|
||||||
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
|
\
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: opcache --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pcntl --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Generic pre-command
|
||||||
|
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pdo_firebird --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Generic pre-command
|
||||||
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
|
\
|
||||||
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
|
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||||
|
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
|
\
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||||
|
# Installation
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pdo_pgsql --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pgsql --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: psr --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install psr \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable psr \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pspell --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: redis --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: GIT extension
|
||||||
|
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||||
|
&& cd /tmp/redis \
|
||||||
|
# Custom: Branch
|
||||||
|
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
|
||||||
|
# Custom: Install command
|
||||||
|
&& REDIS_ARGS=""; \
|
||||||
|
if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
|
||||||
|
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||||
|
fi; \
|
||||||
|
if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
|
||||||
|
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||||
|
fi; \
|
||||||
|
phpize \
|
||||||
|
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||||
|
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||||
|
&& make install \
|
||||||
|
\
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable redis \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: shmop --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: snmp --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: soap --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: sockets --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: sodium --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sodium \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: solr --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install solr \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable solr \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: sysvsem --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: sysvshm --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: tidy --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: xdebug --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: GIT extension
|
||||||
|
&& git clone https://github.com/xdebug/xdebug /tmp/xdebug \
|
||||||
|
&& cd /tmp/xdebug \
|
||||||
|
# Custom: Branch
|
||||||
|
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
|
||||||
|
# Default: Install command
|
||||||
|
&& phpize \
|
||||||
|
&& ./configure --enable-xdebug \
|
||||||
|
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||||
|
&& make install \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable xdebug \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: xsl --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: 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 --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install yaml \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable yaml \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: zip --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Fix php.ini settings for enabled extensions
|
||||||
|
RUN set -eux \
|
||||||
|
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||||
|
|
||||||
|
# Fix oracle dir for images that don't have oci installed
|
||||||
|
RUN set -eux \
|
||||||
|
&& mkdir -p /usr/lib/oracle/
|
||||||
|
|
||||||
|
# Shrink everything down
|
||||||
|
RUN set -eux \
|
||||||
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||||
|
FROM devilbox/php-fpm:8.1-base as final
|
||||||
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
###
|
||||||
|
### Labels
|
||||||
|
###
|
||||||
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="8.1-mods"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 8.1-mods"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-mods"
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Copy artifacts from builder
|
||||||
|
###
|
||||||
|
ARG EXT_DIR
|
||||||
|
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||||
|
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||||
|
COPY --from=builder /usr/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 \
|
||||||
|
&& 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 \
|
||||||
|
# ---------- 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_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
|
\
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Verify
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.1' \
|
||||||
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
|
\
|
||||||
|
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||||
|
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||||
|
\
|
||||||
|
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||||
|
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||||
|
&& rm -f /usr/local/etc/php/php.ini \
|
||||||
|
\
|
||||||
|
&& php -m | grep -oiE '^apcu$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^apcu$' \
|
||||||
|
&& php -m | grep -oiE '^bcmath$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^bcmath$' \
|
||||||
|
&& php -m | grep -oiE '^bz2$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^bz2$' \
|
||||||
|
&& php -m | grep -oiE '^calendar$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^calendar$' \
|
||||||
|
&& php -m | grep -oiE '^ctype$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||||
|
&& php -m | grep -oiE '^curl$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^curl$' \
|
||||||
|
&& php -m | grep -oiE '^dba$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^dba$' \
|
||||||
|
&& php -m | grep -oiE '^dom$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^dom$' \
|
||||||
|
&& php -m | grep -oiE '^enchant$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||||
|
&& php -m | grep -oiE '^exif$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^exif$' \
|
||||||
|
&& php -m | grep -oiE '^ffi$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^ffi$' \
|
||||||
|
&& php -m | grep -oiE '^fileinfo$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^fileinfo$' \
|
||||||
|
&& php -m | grep -oiE '^filter$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^filter$' \
|
||||||
|
&& php -m | grep -oiE '^ftp$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^ftp$' \
|
||||||
|
&& php -m | grep -oiE '^gd$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^gd$' \
|
||||||
|
&& php -m | grep -oiE '^gettext$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^gettext$' \
|
||||||
|
&& php -m | grep -oiE '^gmp$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^gmp$' \
|
||||||
|
&& php -m | grep -oiE '^hash$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^hash$' \
|
||||||
|
&& php -m | grep -oiE '^iconv$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^iconv$' \
|
||||||
|
&& php -m | grep -oiE '^igbinary$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^igbinary$' \
|
||||||
|
&& php -m | grep -oiE '^imap$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^imap$' \
|
||||||
|
&& php -m | grep -oiE '^intl$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^intl$' \
|
||||||
|
&& php -m | grep -oiE '^json$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^json$' \
|
||||||
|
&& php -m | grep -oiE '^ldap$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||||
|
&& php -m | grep -oiE '^libxml$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||||
|
&& php -m | grep -oiE '^mbstring$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||||
|
&& php -m | grep -oiE '^mcrypt$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||||
|
&& php -m | grep -oiE '^msgpack$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||||
|
&& php -m | grep -oiE '^memcache$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||||
|
&& php -m | grep -oiE '^memcached$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||||
|
&& php -m | grep -oiE '^mongodb$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^mongodb$' \
|
||||||
|
&& php -m | grep -oiE '^mysqli$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||||
|
&& php -m | grep -oiE '^mysqlnd$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||||
|
&& php -m | grep -oiE '^oauth$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||||
|
&& php -m | grep -oiE '^oci8$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^oci8$' \
|
||||||
|
&& php -m | grep -oiE '^Zend Opcache$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
|
||||||
|
&& php -m | grep -oiE '^openssl$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||||
|
&& php -m | grep -oiE '^pcntl$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||||
|
&& php -m | grep -oiE '^pcre$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||||
|
&& php -m | grep -oiE '^pdo$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||||
|
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^pdo_dblib$' \
|
||||||
|
&& php -m | grep -oiE '^pdo_firebird$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^pdo_firebird$' \
|
||||||
|
&& php -m | grep -oiE '^pdo_mysql$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^pdo_mysql$' \
|
||||||
|
&& php -m | grep -oiE '^pdo_oci$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^pdo_oci$' \
|
||||||
|
&& php -m | grep -oiE '^pdo_pgsql$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
|
||||||
|
&& php -m | grep -oiE '^pdo_sqlite$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
|
||||||
|
&& php -m | grep -oiE '^pgsql$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||||
|
&& php -m | grep -oiE '^psr$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^psr$' \
|
||||||
|
&& php -m | grep -oiE '^phar$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^phar$' \
|
||||||
|
&& php -m | grep -oiE '^posix$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^posix$' \
|
||||||
|
&& php -m | grep -oiE '^pspell$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||||
|
&& php -m | grep -oiE '^readline$' \
|
||||||
|
&& php -m | grep -oiE '^redis$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^redis$' \
|
||||||
|
&& php -m | grep -oiE '^reflection$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||||
|
&& php -m | grep -oiE '^session$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^session$' \
|
||||||
|
&& php -m | grep -oiE '^shmop$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^shmop$' \
|
||||||
|
&& php -m | grep -oiE '^simplexml$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^simplexml$' \
|
||||||
|
&& php -m | grep -oiE '^snmp$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^snmp$' \
|
||||||
|
&& php -m | grep -oiE '^soap$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^soap$' \
|
||||||
|
&& php -m | grep -oiE '^sockets$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||||
|
&& php -m | grep -oiE '^sodium$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^sodium$' \
|
||||||
|
&& php -m | grep -oiE '^solr$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^solr$' \
|
||||||
|
&& php -m | grep -oiE '^spl$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^spl$' \
|
||||||
|
&& php -m | grep -oiE '^sysvmsg$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
||||||
|
&& php -m | grep -oiE '^sysvsem$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^sysvsem$' \
|
||||||
|
&& php -m | grep -oiE '^sysvshm$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^sysvshm$' \
|
||||||
|
&& php -m | grep -oiE '^tidy$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^tidy$' \
|
||||||
|
&& php -m | grep -oiE '^tokenizer$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||||
|
&& php -m | grep -oiE '^xdebug$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||||
|
&& php -m | grep -oiE '^xml$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^xml$' \
|
||||||
|
&& php -m | grep -oiE '^xmlreader$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||||
|
&& php -m | grep -oiE '^xmlwriter$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^xmlwriter$' \
|
||||||
|
&& php -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-fpm -m | grep -oiE '^yaml$' \
|
||||||
|
&& php -m | grep -oiE '^zip$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^zip$' \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Ports
|
||||||
|
###
|
||||||
|
EXPOSE 9000
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Entrypoint
|
||||||
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
@@ -6,18 +6,26 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.2 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.2-prod" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.2-prod"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-prod"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-prod"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
@@ -32,19 +40,20 @@ RUN set -x \
|
|||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& rm -rf /etc/supervisor* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
|
||||||
&& mkdir -p /var/log/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 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -77,7 +86,6 @@ VOLUME /var/log/php
|
|||||||
VOLUME /var/mail
|
VOLUME /var/mail
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Ports
|
### Ports
|
||||||
###
|
###
|
||||||
@@ -87,4 +95,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,18 +6,26 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.3 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.3-prod" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.3-prod"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.3-prod"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-prod"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
@@ -32,19 +40,20 @@ RUN set -x \
|
|||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& rm -rf /etc/supervisor* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
|
||||||
&& mkdir -p /var/log/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 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -77,7 +86,6 @@ VOLUME /var/log/php
|
|||||||
VOLUME /var/mail
|
VOLUME /var/mail
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Ports
|
### Ports
|
||||||
###
|
###
|
||||||
@@ -87,4 +95,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,18 +6,26 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.4 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.4-prod" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.4-prod"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.4-prod"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-prod"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
@@ -32,19 +40,20 @@ RUN set -x \
|
|||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& rm -rf /etc/supervisor* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
|
||||||
&& mkdir -p /var/log/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 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -77,7 +86,6 @@ VOLUME /var/log/php
|
|||||||
VOLUME /var/mail
|
VOLUME /var/mail
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Ports
|
### Ports
|
||||||
###
|
###
|
||||||
@@ -87,4 +95,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,18 +6,26 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.5 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.5-prod" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.5-prod"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.5-prod"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-prod"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
@@ -32,19 +40,20 @@ RUN set -x \
|
|||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& rm -rf /etc/supervisor* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
|
||||||
&& mkdir -p /var/log/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 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -77,7 +86,6 @@ VOLUME /var/log/php
|
|||||||
VOLUME /var/mail
|
VOLUME /var/mail
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Ports
|
### Ports
|
||||||
###
|
###
|
||||||
@@ -87,4 +95,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,18 +6,26 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.6 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.6-prod" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.6-prod"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.6-prod"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-prod"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
@@ -32,19 +40,20 @@ RUN set -x \
|
|||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& rm -rf /etc/supervisor* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
|
||||||
&& mkdir -p /var/log/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 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -77,7 +86,6 @@ VOLUME /var/log/php
|
|||||||
VOLUME /var/mail
|
VOLUME /var/mail
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Ports
|
### Ports
|
||||||
###
|
###
|
||||||
@@ -87,4 +95,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,18 +6,26 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 7.0 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="7.0-prod" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="7.0-prod"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 7.0-prod"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-prod"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
@@ -32,19 +40,20 @@ RUN set -x \
|
|||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& rm -rf /etc/supervisor* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
|
||||||
&& mkdir -p /var/log/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 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -77,7 +86,6 @@ VOLUME /var/log/php
|
|||||||
VOLUME /var/mail
|
VOLUME /var/mail
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Ports
|
### Ports
|
||||||
###
|
###
|
||||||
@@ -87,4 +95,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,18 +6,26 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 7.1 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="7.1-prod" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="7.1-prod"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 7.1-prod"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-prod"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
@@ -32,19 +40,20 @@ RUN set -x \
|
|||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& rm -rf /etc/supervisor* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
|
||||||
&& mkdir -p /var/log/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 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -77,7 +86,6 @@ VOLUME /var/log/php
|
|||||||
VOLUME /var/mail
|
VOLUME /var/mail
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Ports
|
### Ports
|
||||||
###
|
###
|
||||||
@@ -87,4 +95,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,18 +6,26 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 7.2 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="7.2-prod" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="7.2-prod"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 7.2-prod"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-prod"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
@@ -32,19 +40,20 @@ RUN set -x \
|
|||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& rm -rf /etc/supervisor* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
|
||||||
&& mkdir -p /var/log/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 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -77,7 +86,6 @@ VOLUME /var/log/php
|
|||||||
VOLUME /var/mail
|
VOLUME /var/mail
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Ports
|
### Ports
|
||||||
###
|
###
|
||||||
@@ -87,4 +95,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,18 +6,26 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 7.3 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="7.3-prod" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="7.3-prod"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 7.3-prod"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-prod"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
@@ -32,19 +40,20 @@ RUN set -x \
|
|||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& rm -rf /etc/supervisor* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
|
||||||
&& mkdir -p /var/log/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 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -77,7 +86,6 @@ VOLUME /var/log/php
|
|||||||
VOLUME /var/mail
|
VOLUME /var/mail
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Ports
|
### Ports
|
||||||
###
|
###
|
||||||
@@ -87,4 +95,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,18 +6,26 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 7.4 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="7.4-prod" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="7.4-prod"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 7.4-prod"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-prod"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
@@ -32,19 +40,20 @@ RUN set -x \
|
|||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& rm -rf /etc/supervisor* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
|
||||||
&& mkdir -p /var/log/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 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -77,7 +86,6 @@ VOLUME /var/log/php
|
|||||||
VOLUME /var/mail
|
VOLUME /var/mail
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Ports
|
### Ports
|
||||||
###
|
###
|
||||||
@@ -87,4 +95,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,18 +6,26 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 8.0 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="8.0-prod" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="8.0-prod"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-prod"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-prod"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
@@ -32,19 +40,20 @@ RUN set -x \
|
|||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& rm -rf /etc/supervisor* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
|
||||||
&& mkdir -p /var/log/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 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.0' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.0' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -77,7 +86,6 @@ VOLUME /var/log/php
|
|||||||
VOLUME /var/mail
|
VOLUME /var/mail
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Ports
|
### Ports
|
||||||
###
|
###
|
||||||
@@ -87,4 +95,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
99
Dockerfiles/prod/Dockerfile-8.1
Normal file
99
Dockerfiles/prod/Dockerfile-8.1
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||||
|
FROM devilbox/php-fpm:8.1-mods
|
||||||
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Labels
|
||||||
|
###
|
||||||
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="8.1-prod"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 8.1-prod"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-prod"
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
locales-all \
|
||||||
|
postfix \
|
||||||
|
postfix-pcre \
|
||||||
|
cron \
|
||||||
|
rsyslog \
|
||||||
|
socat \
|
||||||
|
supervisor \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& rm -rf /etc/supervisor* \
|
||||||
|
&& mkdir -p /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 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Verify
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.1' \
|
||||||
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
|
\
|
||||||
|
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||||
|
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||||
|
\
|
||||||
|
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||||
|
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||||
|
&& rm -f /usr/local/etc/php/php.ini
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Copy files
|
||||||
|
###
|
||||||
|
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||||
|
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||||
|
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
|
||||||
|
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Volumes
|
||||||
|
###
|
||||||
|
VOLUME /var/log/php
|
||||||
|
VOLUME /var/mail
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Ports
|
||||||
|
###
|
||||||
|
EXPOSE 9000
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Entrypoint
|
||||||
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
@@ -22,70 +22,83 @@ set_postfix() {
|
|||||||
local debug="${7}"
|
local debug="${7}"
|
||||||
|
|
||||||
local php_ini_file="${php_ini_dir}/devilbox-runtime-sendmail.ini"
|
local php_ini_file="${php_ini_dir}/devilbox-runtime-sendmail.ini"
|
||||||
local catch_all=
|
local enable_mail=
|
||||||
|
|
||||||
|
# Verify env value
|
||||||
if ! env_set "${env_varname}"; then
|
if ! env_set "${env_varname}"; then
|
||||||
log "info" "\$${env_varname} not set." "${debug}"
|
log "info" "\$${env_varname} not set." "${debug}"
|
||||||
log "info" "Postfix will not be started." "${debug}"
|
log "info" "Postfix will not be started." "${debug}"
|
||||||
echo "" > "${php_ini_file}"
|
echo "" > "${php_ini_file}"
|
||||||
else
|
return
|
||||||
catch_all="$( env_get "${env_varname}" )"
|
fi
|
||||||
if [ "${catch_all}" = "1" ]; then
|
|
||||||
log "info" "\$${env_varname} set to 1. Enabling postfix catch-all" "${debug}"
|
|
||||||
|
|
||||||
# Configure PHP
|
# Retrieve env value
|
||||||
{
|
enable_mail="$( env_get "${env_varname}" )"
|
||||||
echo "[mail function]";
|
|
||||||
echo "sendmail_path = $( which sendmail ) -t -i";
|
|
||||||
echo ";mail.force_extra_parameters =";
|
|
||||||
echo "mail.add_x_header = On";
|
|
||||||
echo "mail.log = ${php_mail_log}";
|
|
||||||
} > "${php_ini_file}"
|
|
||||||
|
|
||||||
# PHP mail function logs to file
|
# Enable postfix
|
||||||
if [ "${docker_logs}" != "1" ]; then
|
if [ "${enable_mail}" = "1" ] || [ "${enable_mail}" = "2" ]; then
|
||||||
# Fix PHP mail log file dir/file and permissions
|
|
||||||
if [ ! -d "$( dirname "${php_mail_log}" )" ]; then
|
if [ "${enable_mail}" = "1" ]; then
|
||||||
run "mkdir -p $( dirname "${php_mail_log}" )" "${debug}"
|
log "info" "\$${env_varname} set to 1. Enabling postfix" "${debug}"
|
||||||
fi
|
else
|
||||||
if [ ! -f "${php_mail_log}" ]; then
|
log "info" "\$${env_varname} set to 2. Enabling postfix catch-all" "${debug}"
|
||||||
run "touch ${php_mail_log}" "${debug}"
|
fi
|
||||||
fi
|
|
||||||
run "chown ${username}:${groupname} $( dirname "${php_mail_log}" )" "${debug}"
|
# Configure PHP
|
||||||
run "chown ${username}:${groupname} ${php_mail_log}" "${debug}"
|
{
|
||||||
run "chmod 0644 ${php_mail_log}" "${debug}"
|
echo "[mail function]";
|
||||||
|
echo "sendmail_path = $( command -v sendmail ) -t -i";
|
||||||
|
echo ";mail.force_extra_parameters =";
|
||||||
|
echo "mail.add_x_header = On";
|
||||||
|
echo "mail.log = ${php_mail_log}";
|
||||||
|
} > "${php_ini_file}"
|
||||||
|
|
||||||
|
# PHP mail function logs to file
|
||||||
|
if [ "${docker_logs}" != "1" ]; then
|
||||||
|
# Fix PHP mail log file dir/file and permissions
|
||||||
|
if [ ! -d "$( dirname "${php_mail_log}" )" ]; then
|
||||||
|
run "mkdir -p $( dirname "${php_mail_log}" )" "${debug}"
|
||||||
fi
|
fi
|
||||||
|
if [ ! -f "${php_mail_log}" ]; then
|
||||||
# Add Mail dir/file if it does not exist
|
run "touch ${php_mail_log}" "${debug}"
|
||||||
if [ ! -d "/var/mail" ]; then
|
|
||||||
run "mkdir /var/mail" "${debug}"
|
|
||||||
fi
|
|
||||||
if [ ! -f "/var/mail/${username}" ]; then
|
|
||||||
run "touch /var/mail/${username}" "${debug}"
|
|
||||||
fi
|
fi
|
||||||
|
run "chown ${username}:${groupname} $( dirname "${php_mail_log}" )" "${debug}"
|
||||||
|
run "chown ${username}:${groupname} ${php_mail_log}" "${debug}"
|
||||||
|
run "chmod 0644 ${php_mail_log}" "${debug}"
|
||||||
|
fi
|
||||||
|
|
||||||
# Fix mail dir/file permissions after mount
|
# Add Mail dir/file if it does not exist
|
||||||
run "chmod 0644 /var/mail/${username}" "${debug}"
|
if [ ! -d "/var/mail" ]; then
|
||||||
run "chown ${username}:${groupname} /var/mail" "${debug}"
|
run "mkdir /var/mail" "${debug}"
|
||||||
run "chown ${username}:${groupname} /var/mail/${username}" "${debug}"
|
fi
|
||||||
|
if [ ! -f "/var/mail/${username}" ]; then
|
||||||
|
run "touch /var/mail/${username}" "${debug}"
|
||||||
|
fi
|
||||||
|
|
||||||
# warning: specify "strict_mailbox_ownership = no" to ignore mailbox ownership mismatch
|
# Fix mail dir/file permissions after mount
|
||||||
run "postconf -e 'strict_mailbox_ownership=no'" "${debug}"
|
run "chmod 0644 /var/mail/${username}" "${debug}"
|
||||||
|
run "chown ${username}:${groupname} /var/mail" "${debug}"
|
||||||
|
run "chown ${username}:${groupname} /var/mail/${username}" "${debug}"
|
||||||
|
|
||||||
# Postfix configuration
|
# warning: specify "strict_mailbox_ownership = no" to ignore mailbox ownership mismatch
|
||||||
run "postconf -e 'inet_protocols=ipv4'" "${debug}"
|
run "postconf -e 'strict_mailbox_ownership=no'" "${debug}"
|
||||||
|
|
||||||
|
# Postfix configuration
|
||||||
|
run "postconf -e 'inet_protocols=ipv4'" "${debug}"
|
||||||
|
|
||||||
|
# Postfix catch-all
|
||||||
|
if [ "${enable_mail}" = "2" ]; then
|
||||||
run "postconf -e '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}"
|
||||||
|
|
||||||
elif [ "${catch_all}" = "0" ]; then
|
|
||||||
log "info" "\$${env_varname} set to 0. Disabling postfix catch-all" "${debug}"
|
|
||||||
|
|
||||||
else
|
|
||||||
log "err" "Invalid value for \$${env_varname}. Can only be 0 or 1. Prodived: ${catch_all}" "${debug}"
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
elif [ "${enable_mail}" = "0" ]; then
|
||||||
|
log "info" "\$${env_varname} set to 0. Disabling postfix" "${debug}"
|
||||||
|
|
||||||
|
else
|
||||||
|
log "err" "Invalid value for \$${env_varname}. Can only be 0, 1 or 2. Prodived: ${enable_mail}" "${debug}"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ disable_modules() {
|
|||||||
mod="$( echo "${mod}" | xargs )" # trim
|
mod="$( echo "${mod}" | xargs )" # trim
|
||||||
|
|
||||||
# Find all config files that enable that module
|
# Find all config files that enable that module
|
||||||
files="$( grep -Er "^(zend_)?extension.*(=|/)${mod}\.so" "${cfg_path}" || true )"
|
files="$( grep -Er "^(zend_)?extension.*(=|/)${mod}(\\.so)?\$" "${cfg_path}" || true )"
|
||||||
|
|
||||||
if [ -n "${files}" ]; then
|
if [ -n "${files}" ]; then
|
||||||
while read -r f; do
|
while read -r f; do
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ execute_custom_scripts() {
|
|||||||
if [ ! -d "${script_dir}" ]; then
|
if [ ! -d "${script_dir}" ]; then
|
||||||
run "mkdir -p ${script_dir}" "${debug}"
|
run "mkdir -p ${script_dir}" "${debug}"
|
||||||
fi
|
fi
|
||||||
script_files="$( find "${script_dir}" -type f -iname '*.sh' )"
|
script_files="$( find -L "${script_dir}" -type f -iname '*.sh' | sort -n )"
|
||||||
|
|
||||||
# loop over them line by line
|
# loop over them line by line
|
||||||
IFS='
|
IFS='
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
set -u
|
set -u
|
||||||
set -p pipefail
|
set -o pipefail
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -24,9 +24,6 @@ DVL_PHP_INI_DIR="/usr/local/etc/php/conf.d"
|
|||||||
# php-fpm conf.d directory
|
# php-fpm conf.d directory
|
||||||
DVL_PHP_FPM_DIR="/usr/local/etc/php-fpm.d"
|
DVL_PHP_FPM_DIR="/usr/local/etc/php-fpm.d"
|
||||||
|
|
||||||
# This is the log file for any mail related functions
|
|
||||||
DVL_PHP_MAIL_LOG="/var/log/mail.log"
|
|
||||||
|
|
||||||
# This file holds error and access log definitions
|
# This file holds error and access log definitions
|
||||||
DVL_PHP_FPM_CONF_LOGFILE="${DVL_PHP_FPM_DIR}/zzz-entrypoint-logfiles.conf"
|
DVL_PHP_FPM_CONF_LOGFILE="${DVL_PHP_FPM_DIR}/zzz-entrypoint-logfiles.conf"
|
||||||
DVL_PHP_INI_CONF_LOGFILE="${DVL_PHP_INI_DIR}/zzz-entrypoint-logfiles.ini"
|
DVL_PHP_INI_CONF_LOGFILE="${DVL_PHP_INI_DIR}/zzz-entrypoint-logfiles.ini"
|
||||||
@@ -34,6 +31,9 @@ DVL_PHP_INI_CONF_LOGFILE="${DVL_PHP_INI_DIR}/zzz-entrypoint-logfiles.ini"
|
|||||||
# PHP-FPM log dir
|
# PHP-FPM log dir
|
||||||
DVL_FPM_LOG_DIR="/var/log/php"
|
DVL_FPM_LOG_DIR="/var/log/php"
|
||||||
|
|
||||||
|
# This is the log file for any mail related functions
|
||||||
|
DVL_PHP_MAIL_LOG="${DVL_FPM_LOG_DIR}/mail.log"
|
||||||
|
|
||||||
# Custom ini dir (to be copied to actual ini dir)
|
# Custom ini dir (to be copied to actual ini dir)
|
||||||
DVL_PHP_CUST_INI_DIR="/etc/php-custom.d"
|
DVL_PHP_CUST_INI_DIR="/etc/php-custom.d"
|
||||||
|
|
||||||
@@ -138,7 +138,7 @@ done
|
|||||||
###
|
###
|
||||||
### Supervisor: rsyslogd & postfix
|
### Supervisor: rsyslogd & postfix
|
||||||
###
|
###
|
||||||
if [ "$( env_get "ENABLE_MAIL" )" = "1" ]; then
|
if [ "$( env_get "ENABLE_MAIL" )" = "1" ] || [ "$( env_get "ENABLE_MAIL" )" = "2" ]; then
|
||||||
supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${DVL_SUPERVISOR_CONFD}" "${DEBUG_LEVEL}" "1"
|
supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${DVL_SUPERVISOR_CONFD}" "${DEBUG_LEVEL}" "1"
|
||||||
supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${DVL_SUPERVISOR_CONFD}" "${DEBUG_LEVEL}"
|
supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${DVL_SUPERVISOR_CONFD}" "${DEBUG_LEVEL}"
|
||||||
fi
|
fi
|
||||||
@@ -190,4 +190,4 @@ execute_custom_scripts "/startup.2.d" "${DEBUG_LEVEL}"
|
|||||||
### Startup
|
### Startup
|
||||||
###
|
###
|
||||||
log "info" "Starting supervisord" "${DEBUG_LEVEL}"
|
log "info" "Starting supervisord" "${DEBUG_LEVEL}"
|
||||||
exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
|
exec "${@}"
|
||||||
|
|||||||
@@ -22,14 +22,7 @@ set -o pipefail
|
|||||||
###
|
###
|
||||||
### Variables
|
### Variables
|
||||||
###
|
###
|
||||||
if [ -f "/etc/alpine-release" ]; then
|
MAILLOG="/var/log/mail.log"
|
||||||
MAILLOG="/var/log/maillog"
|
|
||||||
elif [ -f "/etc/debian_version" ]; then
|
|
||||||
MAILLOG="/var/log/mail.log"
|
|
||||||
else
|
|
||||||
MAILLOG="/var/log/maillog"
|
|
||||||
fi
|
|
||||||
|
|
||||||
MAILPID="/var/spool/postfix/pid/master.pid"
|
MAILPID="/var/spool/postfix/pid/master.pid"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,4 +6,4 @@ pidfile = /var/run/supervisord.pid
|
|||||||
childlogdir = /var/log/supervisor
|
childlogdir = /var/log/supervisor
|
||||||
|
|
||||||
[include]
|
[include]
|
||||||
files = /etc/supervisor/conf.d/*.conf
|
files = /etc/supervisor/conf.d/*.conf /etc/supervisor/custom.d/*.conf
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.2 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.2-work" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.2-work"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-work"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-work"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -23,26 +31,27 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
###
|
###
|
||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
\
|
||||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||||
|
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||||
|
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" 2>/dev/null | 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 \
|
&& 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 \
|
&& 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 \
|
&& 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 \
|
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
|
||||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
|
||||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 -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 \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
@@ -63,7 +72,9 @@ RUN set -x \
|
|||||||
git \
|
git \
|
||||||
git-flow \
|
git-flow \
|
||||||
git-svn \
|
git-svn \
|
||||||
|
ghostscript \
|
||||||
graphviz \
|
graphviz \
|
||||||
|
gsfonts \
|
||||||
hostname \
|
hostname \
|
||||||
htop \
|
htop \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
@@ -71,26 +82,24 @@ RUN set -x \
|
|||||||
jq \
|
jq \
|
||||||
less \
|
less \
|
||||||
libc-dev \
|
libc-dev \
|
||||||
libffi-dev\
|
libffi-dev \
|
||||||
libssl-dev\
|
libssl-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
mongodb-org-shell \
|
||||||
mongodb-org-tools \
|
mongodb-org-tools \
|
||||||
moreutils \
|
moreutils \
|
||||||
mysql-client \
|
mysql-client \
|
||||||
|
mupdf \
|
||||||
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
net-tools \
|
net-tools \
|
||||||
netcat \
|
netcat \
|
||||||
nodejs \
|
|
||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
postgresql-client \
|
||||||
python-cffi \
|
|
||||||
python-dev \
|
|
||||||
python-pip \
|
|
||||||
python-wheel \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
@@ -106,30 +115,52 @@ RUN set -x \
|
|||||||
w3m \
|
w3m \
|
||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
wkhtmltopdf \
|
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
yarn \
|
||||||
zip \
|
zip \
|
||||||
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& 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/* \
|
||||||
\
|
\
|
||||||
# Get newer pip version
|
|
||||||
&& pip install --upgrade pip \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
RUN set -x \
|
###
|
||||||
# ansible
|
### Install custom software
|
||||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
###
|
||||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
RUN set -eux \
|
||||||
|
# -------------------- pip --------------------
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libpython-dev \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python \
|
||||||
\
|
\
|
||||||
# awesomeci
|
\
|
||||||
|
# -------------------- nvm --------------------
|
||||||
|
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||||
|
&& cd /opt/nvm \
|
||||||
|
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||||
|
\
|
||||||
|
&& { \
|
||||||
|
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' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -138,32 +169,20 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/awesome-ci \
|
&& rm -rf /usr/local/src/awesome-ci \
|
||||||
\
|
\
|
||||||
&& gem install mixlib-config -v 2.2.4 \
|
\
|
||||||
&& gem install rb-inotify -v 0.9.10 \
|
# -------------------- gitflow --------------------
|
||||||
&& gem install mdl \
|
|
||||||
&& gem install scss_lint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# gitflow
|
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
\
|
\
|
||||||
# grunt
|
\
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
# -------------------- linkcheck --------------------
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# linkcheck
|
|
||||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
|
||||||
&& chmod +x /usr/local/bin/linkcheck \
|
&& chmod +x /usr/local/bin/linkcheck \
|
||||||
\
|
\
|
||||||
# linuxbrew
|
\
|
||||||
|
# -------------------- linuxbrew --------------------
|
||||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
@@ -174,12 +193,14 @@ RUN set -x \
|
|||||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||||
\
|
\
|
||||||
# mhsendmail
|
\
|
||||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
# -------------------- mhsendmail --------------------
|
||||||
|
&& 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 \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||||
\
|
\
|
||||||
# mysqldumpsecure
|
\
|
||||||
|
# -------------------- mysqldumpsecure --------------------
|
||||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||||
&& cd /usr/local/src/mysqldump-secure \
|
&& cd /usr/local/src/mysqldump-secure \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -201,39 +222,36 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||||
\
|
\
|
||||||
# phpcs
|
\
|
||||||
&& curl -sS -L https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
# -------------------- phpcs --------------------
|
||||||
|
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
# phpcbf
|
\
|
||||||
&& curl -sS -L https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
# -------------------- phpcbf --------------------
|
||||||
|
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
# pm2
|
\
|
||||||
&& until npm install pm2 -g; do sleep 1; done \
|
# -------------------- wkhtmltopdf --------------------
|
||||||
# sass
|
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
||||||
&& gem install sass \
|
|
||||||
# webpack
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# yamllint
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
\
|
\
|
||||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
# cleanup
|
\
|
||||||
|
# -------------------- cleanup --------------------
|
||||||
&& rm -rf /home/${MY_USER}/.*json \
|
&& rm -rf /home/${MY_USER}/.*json \
|
||||||
&& rm -rf /home/${MY_USER}/.cache \
|
&& rm -rf /home/${MY_USER}/.cache \
|
||||||
&& rm -rf /home/${MY_USER}/.composer \
|
&& rm -rf /home/${MY_USER}/.composer \
|
||||||
&& rm -rf /home/${MY_USER}/.config \
|
&& rm -rf /home/${MY_USER}/.config \
|
||||||
&& rm -rf /home/${MY_USER}/.drush \
|
&& rm -rf /home/${MY_USER}/.drush \
|
||||||
&& rm -rf /home/${MY_USER}/.gem \
|
|
||||||
&& rm -rf /home/${MY_USER}/.npm \
|
|
||||||
&& rm -rf /home/${MY_USER}/.subversion \
|
&& rm -rf /home/${MY_USER}/.subversion \
|
||||||
&& rm -rf /home/${MY_USER}/.v8* \
|
&& rm -rf /home/${MY_USER}/.v8* \
|
||||||
\
|
\
|
||||||
@@ -242,15 +260,146 @@ RUN set -x \
|
|||||||
&& rm -rf /root/.composer \
|
&& rm -rf /root/.composer \
|
||||||
&& rm -rf /root/.config \
|
&& rm -rf /root/.config \
|
||||||
&& rm -rf /root/.drush \
|
&& rm -rf /root/.drush \
|
||||||
&& rm -rf /root/.gem \
|
|
||||||
&& rm -rf /root/.npm \
|
|
||||||
&& rm -rf /root/.subversion \
|
&& rm -rf /root/.subversion \
|
||||||
&& rm -rf /root/.v8* \
|
&& rm -rf /root/.v8* \
|
||||||
\
|
\
|
||||||
&& rm -rf /tmp/* \
|
&& 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 /usr/local/src/composer/cache/* || true) \
|
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Composer (PHP)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
\
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### 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 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& 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 \
|
||||||
|
&& rm -rf /home/devilbox/.npm \
|
||||||
|
&& rm -rf /home/devilbox/.cache \
|
||||||
|
&& rm -rf /home/devilbox/.config \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install gem (Ruby)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- mixlib_config --------------------
|
||||||
|
&& gem install mixlib-config -v 2.2.4 \
|
||||||
|
\
|
||||||
|
# -------------------- ffi --------------------
|
||||||
|
&& gem install ffi -v 1.12.2 \
|
||||||
|
\
|
||||||
|
# -------------------- rb_inotify --------------------
|
||||||
|
&& gem install rb-inotify -v 0.9.10 \
|
||||||
|
\
|
||||||
|
# -------------------- mdl --------------------
|
||||||
|
&& gem install mdl -v 0.5.0 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.gem \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install pip (Python) packages
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- ansible --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall ansible || true \
|
||||||
|
\
|
||||||
|
# -------------------- yamllint --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
|
\
|
||||||
|
# -------------------- yq --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.cache/pip \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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 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 strip --strip-all -p 2>/dev/null || true) \
|
||||||
@@ -262,7 +411,10 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
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}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||||
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"; \
|
||||||
@@ -280,7 +432,7 @@ RUN \
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -296,27 +448,51 @@ RUN set -x \
|
|||||||
&& 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
|
||||||
|
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
# -------------------- Software --------------------
|
||||||
&& mdl --version | grep -E '[.0-9]+' \
|
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& eslint -v | grep -E '[.0-9]+' \
|
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
&& mdlint --version | grep -E '[.0-9]+' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[0-9][.0-9]+' \
|
||||||
&& gulp --version | grep -E '[.0-9]+' \
|
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||||
\
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& git-flow version | grep -E '[.0-9]+' \
|
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& grunt --version | grep -E '[.0-9]+' \
|
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
\
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
# -------------------- Composer --------------------
|
||||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
\
|
||||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
# -------------------- PIP --------------------
|
||||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
||||||
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
|
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||||
&& sass --version | grep -E '[.0-9]+' \
|
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||||
&& webpack --version | grep -E '[.0-9]+' \
|
\
|
||||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
# -------------------- NPM --------------------
|
||||||
&& true
|
&& 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/.cache/ \
|
||||||
|
&& rm -rf /home/devilbox/.config/ \
|
||||||
|
&& rm -rf /root/.ansible \
|
||||||
|
&& rm -rf /root/.console \
|
||||||
|
&& rm -rf /root/.composer \
|
||||||
|
&& rm -rf /root/.drush \
|
||||||
|
&& rm -rf /root/.pm2 \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -331,7 +507,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
|||||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Volumes
|
### Volumes
|
||||||
###
|
###
|
||||||
@@ -355,4 +530,5 @@ WORKDIR /shared/httpd
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.3 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.3-work" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.3-work"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.3-work"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-work"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -23,26 +31,27 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
###
|
###
|
||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
\
|
||||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||||
|
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||||
|
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" 2>/dev/null | 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 \
|
&& 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 \
|
&& 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 \
|
&& 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 \
|
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
|
||||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
|
||||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 -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 \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
@@ -63,7 +72,9 @@ RUN set -x \
|
|||||||
git \
|
git \
|
||||||
git-flow \
|
git-flow \
|
||||||
git-svn \
|
git-svn \
|
||||||
|
ghostscript \
|
||||||
graphviz \
|
graphviz \
|
||||||
|
gsfonts \
|
||||||
hostname \
|
hostname \
|
||||||
htop \
|
htop \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
@@ -71,26 +82,24 @@ RUN set -x \
|
|||||||
jq \
|
jq \
|
||||||
less \
|
less \
|
||||||
libc-dev \
|
libc-dev \
|
||||||
libffi-dev\
|
libffi-dev \
|
||||||
libssl-dev\
|
libssl-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
mongodb-org-shell \
|
||||||
mongodb-org-tools \
|
mongodb-org-tools \
|
||||||
moreutils \
|
moreutils \
|
||||||
mysql-client \
|
mysql-client \
|
||||||
|
mupdf \
|
||||||
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
net-tools \
|
net-tools \
|
||||||
netcat \
|
netcat \
|
||||||
nodejs \
|
|
||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
postgresql-client \
|
||||||
python-cffi \
|
|
||||||
python-dev \
|
|
||||||
python-pip \
|
|
||||||
python-wheel \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
@@ -106,32 +115,60 @@ RUN set -x \
|
|||||||
w3m \
|
w3m \
|
||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
wkhtmltopdf \
|
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
yarn \
|
||||||
zip \
|
zip \
|
||||||
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& 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/* \
|
||||||
\
|
\
|
||||||
# Get newer pip version
|
|
||||||
&& pip install --upgrade pip \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
RUN set -x \
|
###
|
||||||
# composer
|
### Install custom software
|
||||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
###
|
||||||
# ansible
|
RUN set -eux \
|
||||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
# -------------------- composer --------------------
|
||||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||||
|
&& curl -sS -L --fail https://getcomposer.org/composer-2.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 \
|
||||||
\
|
\
|
||||||
# awesomeci
|
\
|
||||||
|
# -------------------- pip --------------------
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libpython-dev \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- nvm --------------------
|
||||||
|
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||||
|
&& cd /opt/nvm \
|
||||||
|
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||||
|
\
|
||||||
|
&& { \
|
||||||
|
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' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -140,49 +177,34 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/awesome-ci \
|
&& rm -rf /usr/local/src/awesome-ci \
|
||||||
\
|
\
|
||||||
&& gem install mixlib-config -v 2.2.4 \
|
\
|
||||||
&& gem install rb-inotify -v 0.9.10 \
|
# -------------------- drush7 --------------------
|
||||||
&& gem install mdl \
|
|
||||||
&& gem install scss_lint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# codeception
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
|
||||||
\
|
|
||||||
# drush7
|
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||||
&& cd /usr/local/src/drush7 \
|
&& cd /usr/local/src/drush7 \
|
||||||
&& git checkout 7.4.0 \
|
&& git checkout 7.4.0 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||||
&& rm -rf /usr/local/src/drush7/.git \
|
&& rm -rf /usr/local/src/drush7/.git \
|
||||||
&& rm -rf /usr/local/src/drush7/docs \
|
&& rm -rf /usr/local/src/drush7/docs \
|
||||||
&& rm -rf /usr/local/src/drush7/examples \
|
&& rm -rf /usr/local/src/drush7/examples \
|
||||||
&& rm -rf /usr/local/src/drush7/misc \
|
&& rm -rf /usr/local/src/drush7/misc \
|
||||||
\
|
\
|
||||||
# gitflow
|
\
|
||||||
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
\
|
\
|
||||||
# grunt
|
\
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
# -------------------- linkcheck --------------------
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# linkcheck
|
|
||||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
|
||||||
&& chmod +x /usr/local/bin/linkcheck \
|
&& chmod +x /usr/local/bin/linkcheck \
|
||||||
\
|
\
|
||||||
# linuxbrew
|
\
|
||||||
|
# -------------------- linuxbrew --------------------
|
||||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
@@ -193,12 +215,14 @@ RUN set -x \
|
|||||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||||
\
|
\
|
||||||
# mhsendmail
|
\
|
||||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
# -------------------- mhsendmail --------------------
|
||||||
|
&& 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 \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||||
\
|
\
|
||||||
# mysqldumpsecure
|
\
|
||||||
|
# -------------------- mysqldumpsecure --------------------
|
||||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||||
&& cd /usr/local/src/mysqldump-secure \
|
&& cd /usr/local/src/mysqldump-secure \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -220,7 +244,8 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||||
\
|
\
|
||||||
# phalcon
|
\
|
||||||
|
# -------------------- phalcon --------------------
|
||||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||||
&& cd /usr/local/src/phalcon-devtools \
|
&& cd /usr/local/src/phalcon-devtools \
|
||||||
&& git checkout v2.0.7 \
|
&& git checkout v2.0.7 \
|
||||||
@@ -231,50 +256,56 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||||
\
|
\
|
||||||
# phpcs
|
\
|
||||||
&& curl -sS -L https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
# -------------------- phpcs --------------------
|
||||||
|
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
# phpcbf
|
\
|
||||||
&& curl -sS -L https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
# -------------------- phpcbf --------------------
|
||||||
|
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
# php-cs-fixer
|
\
|
||||||
&& curl -sS -L 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 \
|
# -------------------- 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 \
|
||||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
# phpunit
|
\
|
||||||
&& curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
# -------------------- phpmd --------------------
|
||||||
|
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpunit --------------------
|
||||||
|
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
# pm2
|
\
|
||||||
&& until npm install pm2 -g; do sleep 1; done \
|
# -------------------- wkhtmltopdf --------------------
|
||||||
# sass
|
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
||||||
&& gem install sass \
|
|
||||||
# webpack
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# wpcli
|
|
||||||
&& curl https://github.com/wp-cli/wp-cli/releases/download/v1.5.1/wp-cli-1.5.1.phar -L -o /usr/local/bin/wp \
|
|
||||||
&& chmod +x /usr/local/bin/wp \
|
|
||||||
# yamllint
|
|
||||||
&& 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 libpython-dev python-setuptools libyaml-dev \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
\
|
\
|
||||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
# cleanup
|
\
|
||||||
|
# -------------------- wpcli --------------------
|
||||||
|
&& curl -sS -L --fail https://github.com/wp-cli/wp-cli/releases/download/v1.5.1/wp-cli-1.5.1.phar -L -o /usr/local/bin/wp \
|
||||||
|
&& chmod +x /usr/local/bin/wp \
|
||||||
|
\
|
||||||
|
# -------------------- cleanup --------------------
|
||||||
&& rm -rf /home/${MY_USER}/.*json \
|
&& rm -rf /home/${MY_USER}/.*json \
|
||||||
&& rm -rf /home/${MY_USER}/.cache \
|
&& rm -rf /home/${MY_USER}/.cache \
|
||||||
&& rm -rf /home/${MY_USER}/.composer \
|
&& rm -rf /home/${MY_USER}/.composer \
|
||||||
&& rm -rf /home/${MY_USER}/.config \
|
&& rm -rf /home/${MY_USER}/.config \
|
||||||
&& rm -rf /home/${MY_USER}/.drush \
|
&& rm -rf /home/${MY_USER}/.drush \
|
||||||
&& rm -rf /home/${MY_USER}/.gem \
|
|
||||||
&& rm -rf /home/${MY_USER}/.npm \
|
|
||||||
&& rm -rf /home/${MY_USER}/.subversion \
|
&& rm -rf /home/${MY_USER}/.subversion \
|
||||||
&& rm -rf /home/${MY_USER}/.v8* \
|
&& rm -rf /home/${MY_USER}/.v8* \
|
||||||
\
|
\
|
||||||
@@ -283,15 +314,153 @@ RUN set -x \
|
|||||||
&& rm -rf /root/.composer \
|
&& rm -rf /root/.composer \
|
||||||
&& rm -rf /root/.config \
|
&& rm -rf /root/.config \
|
||||||
&& rm -rf /root/.drush \
|
&& rm -rf /root/.drush \
|
||||||
&& rm -rf /root/.gem \
|
|
||||||
&& rm -rf /root/.npm \
|
|
||||||
&& rm -rf /root/.subversion \
|
&& rm -rf /root/.subversion \
|
||||||
&& rm -rf /root/.v8* \
|
&& rm -rf /root/.v8* \
|
||||||
\
|
\
|
||||||
&& rm -rf /tmp/* \
|
&& 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 /usr/local/src/composer/cache/* || true) \
|
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Composer (PHP)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- codeception --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- 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 /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### 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 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& 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 \
|
||||||
|
&& rm -rf /home/devilbox/.npm \
|
||||||
|
&& rm -rf /home/devilbox/.cache \
|
||||||
|
&& rm -rf /home/devilbox/.config \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install gem (Ruby)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- mixlib_config --------------------
|
||||||
|
&& gem install mixlib-config -v 2.2.4 \
|
||||||
|
\
|
||||||
|
# -------------------- ffi --------------------
|
||||||
|
&& gem install ffi -v 1.12.2 \
|
||||||
|
\
|
||||||
|
# -------------------- rb_inotify --------------------
|
||||||
|
&& gem install rb-inotify -v 0.9.10 \
|
||||||
|
\
|
||||||
|
# -------------------- mdl --------------------
|
||||||
|
&& gem install mdl -v 0.5.0 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.gem \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install pip (Python) packages
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- ansible --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall ansible || true \
|
||||||
|
\
|
||||||
|
# -------------------- yamllint --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
|
\
|
||||||
|
# -------------------- yq --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.cache/pip \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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 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 strip --strip-all -p 2>/dev/null || true) \
|
||||||
@@ -303,7 +472,10 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
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}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||||
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"; \
|
||||||
@@ -321,7 +493,7 @@ RUN \
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -337,34 +509,59 @@ RUN set -x \
|
|||||||
&& 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
|
||||||
|
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
# -------------------- Software --------------------
|
||||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||||
&& mdl --version | grep -E '[.0-9]+' \
|
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& eslint -v | grep -E '[.0-9]+' \
|
|
||||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& mdlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& gulp --version | grep -E '[.0-9]+' \
|
|
||||||
\
|
|
||||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.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]+' \
|
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||||
&& grunt --version | grep -E '[.0-9]+' \
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[0-9][.0-9]+' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||||
&& phalcon commands | grep -E '[.0-9]+' \
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
|
||||||
&& 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+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
|
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||||
&& sass --version | grep -E '[.0-9]+' \
|
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||||
&& webpack --version | grep -E '[.0-9]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
\
|
||||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
# -------------------- Composer --------------------
|
||||||
&& true
|
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||||
|
\
|
||||||
|
# -------------------- PIP --------------------
|
||||||
|
&& ansible --version | grep -E '^ansible [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]+$' \
|
||||||
|
\
|
||||||
|
# -------------------- 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/.cache/ \
|
||||||
|
&& rm -rf /home/devilbox/.config/ \
|
||||||
|
&& rm -rf /root/.ansible \
|
||||||
|
&& rm -rf /root/.console \
|
||||||
|
&& rm -rf /root/.composer \
|
||||||
|
&& rm -rf /root/.drush \
|
||||||
|
&& rm -rf /root/.pm2 \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -379,7 +576,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
|||||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Volumes
|
### Volumes
|
||||||
###
|
###
|
||||||
@@ -403,4 +599,5 @@ WORKDIR /shared/httpd
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.4 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.4-work" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.4-work"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.4-work"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-work"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -23,26 +31,27 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
###
|
###
|
||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
\
|
||||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||||
|
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||||
|
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" 2>/dev/null | 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 \
|
&& 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 \
|
&& 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 \
|
&& 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 \
|
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
|
||||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
|
||||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 -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 \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
@@ -63,7 +72,9 @@ RUN set -x \
|
|||||||
git \
|
git \
|
||||||
git-flow \
|
git-flow \
|
||||||
git-svn \
|
git-svn \
|
||||||
|
ghostscript \
|
||||||
graphviz \
|
graphviz \
|
||||||
|
gsfonts \
|
||||||
hostname \
|
hostname \
|
||||||
htop \
|
htop \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
@@ -71,26 +82,24 @@ RUN set -x \
|
|||||||
jq \
|
jq \
|
||||||
less \
|
less \
|
||||||
libc-dev \
|
libc-dev \
|
||||||
libffi-dev\
|
libffi-dev \
|
||||||
libssl-dev\
|
libssl-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
mongodb-org-shell \
|
||||||
mongodb-org-tools \
|
mongodb-org-tools \
|
||||||
moreutils \
|
moreutils \
|
||||||
mysql-client \
|
mysql-client \
|
||||||
|
mupdf \
|
||||||
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
net-tools \
|
net-tools \
|
||||||
netcat \
|
netcat \
|
||||||
nodejs \
|
|
||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
postgresql-client \
|
||||||
python-cffi \
|
|
||||||
python-dev \
|
|
||||||
python-pip \
|
|
||||||
python-wheel \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
@@ -106,32 +115,60 @@ RUN set -x \
|
|||||||
w3m \
|
w3m \
|
||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
wkhtmltopdf \
|
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
yarn \
|
||||||
zip \
|
zip \
|
||||||
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& 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/* \
|
||||||
\
|
\
|
||||||
# Get newer pip version
|
|
||||||
&& pip install --upgrade pip \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
RUN set -x \
|
###
|
||||||
# composer
|
### Install custom software
|
||||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
###
|
||||||
# ansible
|
RUN set -eux \
|
||||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
# -------------------- composer --------------------
|
||||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||||
|
&& curl -sS -L --fail https://getcomposer.org/composer-2.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 \
|
||||||
\
|
\
|
||||||
# awesomeci
|
\
|
||||||
|
# -------------------- pip --------------------
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libpython-dev \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- nvm --------------------
|
||||||
|
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||||
|
&& cd /opt/nvm \
|
||||||
|
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||||
|
\
|
||||||
|
&& { \
|
||||||
|
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' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -140,75 +177,63 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/awesome-ci \
|
&& rm -rf /usr/local/src/awesome-ci \
|
||||||
\
|
\
|
||||||
&& gem install mixlib-config -v 2.2.4 \
|
\
|
||||||
&& gem install rb-inotify -v 0.9.10 \
|
# -------------------- deployer --------------------
|
||||||
&& gem install mdl \
|
&& curl -sS -L --fail https://deployer.org/releases/v3.3.0/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
&& gem install scss_lint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# codeception
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
|
||||||
\
|
|
||||||
# deployer
|
|
||||||
&& curl -sS 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 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||||
&& cd /usr/local/src/drush7 \
|
&& cd /usr/local/src/drush7 \
|
||||||
&& git checkout 7.4.0 \
|
&& git checkout 7.4.0 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||||
&& rm -rf /usr/local/src/drush7/.git \
|
&& rm -rf /usr/local/src/drush7/.git \
|
||||||
&& rm -rf /usr/local/src/drush7/docs \
|
&& rm -rf /usr/local/src/drush7/docs \
|
||||||
&& rm -rf /usr/local/src/drush7/examples \
|
&& rm -rf /usr/local/src/drush7/examples \
|
||||||
&& rm -rf /usr/local/src/drush7/misc \
|
&& rm -rf /usr/local/src/drush7/misc \
|
||||||
\
|
\
|
||||||
# drush8
|
\
|
||||||
|
# -------------------- drush8 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||||
&& cd /usr/local/src/drush8 \
|
&& cd /usr/local/src/drush8 \
|
||||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||||
&& rm -rf /usr/local/src/drush8/.git \
|
&& rm -rf /usr/local/src/drush8/.git \
|
||||||
&& rm -rf /usr/local/src/drush8/docs \
|
&& rm -rf /usr/local/src/drush8/docs \
|
||||||
&& rm -rf /usr/local/src/drush8/examples \
|
&& rm -rf /usr/local/src/drush8/examples \
|
||||||
&& rm -rf /usr/local/src/drush8/misc \
|
&& rm -rf /usr/local/src/drush8/misc \
|
||||||
\
|
\
|
||||||
# gitflow
|
\
|
||||||
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
\
|
\
|
||||||
# grunt
|
\
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
# -------------------- laravel --------------------
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# laravel
|
|
||||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||||
&& cd /usr/local/src/laravel-installer \
|
&& cd /usr/local/src/laravel-installer \
|
||||||
&& git checkout v1.3.7 \
|
&& git checkout v1.3.7 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
|
&& 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' \
|
||||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
|
||||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||||
\
|
\
|
||||||
# linkcheck
|
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
\
|
||||||
|
# -------------------- linkcheck --------------------
|
||||||
|
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||||
&& chmod +x /usr/local/bin/linkcheck \
|
&& chmod +x /usr/local/bin/linkcheck \
|
||||||
\
|
\
|
||||||
# linuxbrew
|
\
|
||||||
|
# -------------------- linuxbrew --------------------
|
||||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
@@ -219,12 +244,14 @@ RUN set -x \
|
|||||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||||
\
|
\
|
||||||
# mhsendmail
|
\
|
||||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
# -------------------- mhsendmail --------------------
|
||||||
|
&& 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 \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||||
\
|
\
|
||||||
# mysqldumpsecure
|
\
|
||||||
|
# -------------------- mysqldumpsecure --------------------
|
||||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||||
&& cd /usr/local/src/mysqldump-secure \
|
&& cd /usr/local/src/mysqldump-secure \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -246,64 +273,73 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||||
\
|
\
|
||||||
# phalcon
|
\
|
||||||
|
# -------------------- phalcon --------------------
|
||||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||||
&& cd /usr/local/src/phalcon-devtools \
|
&& cd /usr/local/src/phalcon-devtools \
|
||||||
&& git checkout v2.0.9 \
|
&& git checkout v2.0.9 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||||
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||||
&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \
|
&& ln -sf /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \
|
||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||||
\
|
\
|
||||||
# phpcs
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
# -------------------- phpcs --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
# phpcbf
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
# -------------------- phpcbf --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
# php-cs-fixer
|
\
|
||||||
&& curl -sS -L 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 \
|
# -------------------- 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 \
|
||||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
# phpunit
|
\
|
||||||
&& curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
# -------------------- phpmd --------------------
|
||||||
|
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpunit --------------------
|
||||||
|
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
# pm2
|
\
|
||||||
&& until npm install pm2 -g; do sleep 1; done \
|
# -------------------- symfony --------------------
|
||||||
# sass
|
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||||
&& gem install sass \
|
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||||
# symfony
|
|
||||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& chmod +x /usr/local/bin/symfony \
|
||||||
# webpack
|
\
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# wpcli
|
|
||||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
|
||||||
&& chmod +x /usr/local/bin/wp \
|
|
||||||
# yamllint
|
|
||||||
&& 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 libpython-dev python-setuptools libyaml-dev \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
\
|
\
|
||||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
# cleanup
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
|
\
|
||||||
|
# -------------------- cleanup --------------------
|
||||||
&& rm -rf /home/${MY_USER}/.*json \
|
&& rm -rf /home/${MY_USER}/.*json \
|
||||||
&& rm -rf /home/${MY_USER}/.cache \
|
&& rm -rf /home/${MY_USER}/.cache \
|
||||||
&& rm -rf /home/${MY_USER}/.composer \
|
&& rm -rf /home/${MY_USER}/.composer \
|
||||||
&& rm -rf /home/${MY_USER}/.config \
|
&& rm -rf /home/${MY_USER}/.config \
|
||||||
&& rm -rf /home/${MY_USER}/.drush \
|
&& rm -rf /home/${MY_USER}/.drush \
|
||||||
&& rm -rf /home/${MY_USER}/.gem \
|
|
||||||
&& rm -rf /home/${MY_USER}/.npm \
|
|
||||||
&& rm -rf /home/${MY_USER}/.subversion \
|
&& rm -rf /home/${MY_USER}/.subversion \
|
||||||
&& rm -rf /home/${MY_USER}/.v8* \
|
&& rm -rf /home/${MY_USER}/.v8* \
|
||||||
\
|
\
|
||||||
@@ -312,15 +348,153 @@ RUN set -x \
|
|||||||
&& rm -rf /root/.composer \
|
&& rm -rf /root/.composer \
|
||||||
&& rm -rf /root/.config \
|
&& rm -rf /root/.config \
|
||||||
&& rm -rf /root/.drush \
|
&& rm -rf /root/.drush \
|
||||||
&& rm -rf /root/.gem \
|
|
||||||
&& rm -rf /root/.npm \
|
|
||||||
&& rm -rf /root/.subversion \
|
&& rm -rf /root/.subversion \
|
||||||
&& rm -rf /root/.v8* \
|
&& rm -rf /root/.v8* \
|
||||||
\
|
\
|
||||||
&& rm -rf /tmp/* \
|
&& 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 /usr/local/src/composer/cache/* || true) \
|
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Composer (PHP)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- codeception --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- 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 /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### 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 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& 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 \
|
||||||
|
&& rm -rf /home/devilbox/.npm \
|
||||||
|
&& rm -rf /home/devilbox/.cache \
|
||||||
|
&& rm -rf /home/devilbox/.config \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install gem (Ruby)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- mixlib_config --------------------
|
||||||
|
&& gem install mixlib-config -v 2.2.4 \
|
||||||
|
\
|
||||||
|
# -------------------- ffi --------------------
|
||||||
|
&& gem install ffi -v 1.12.2 \
|
||||||
|
\
|
||||||
|
# -------------------- rb_inotify --------------------
|
||||||
|
&& gem install rb-inotify -v 0.9.10 \
|
||||||
|
\
|
||||||
|
# -------------------- mdl --------------------
|
||||||
|
&& gem install mdl -v 0.5.0 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.gem \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install pip (Python) packages
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- ansible --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall ansible || true \
|
||||||
|
\
|
||||||
|
# -------------------- yamllint --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
|
\
|
||||||
|
# -------------------- yq --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.cache/pip \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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 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 strip --strip-all -p 2>/dev/null || true) \
|
||||||
@@ -332,7 +506,10 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
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}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||||
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"; \
|
||||||
@@ -350,7 +527,7 @@ RUN \
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -366,38 +543,63 @@ RUN set -x \
|
|||||||
&& 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
|
||||||
|
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
# -------------------- Software --------------------
|
||||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||||
&& mdl --version | grep -E '[.0-9]+' \
|
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& eslint -v | grep -E '[.0-9]+' \
|
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& mdlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& gulp --version | grep -E '[.0-9]+' \
|
|
||||||
\
|
|
||||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \
|
|
||||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
||||||
&& git-flow version | grep -E '[.0-9]+' \
|
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||||
&& grunt --version | grep -E '[.0-9]+' \
|
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||||
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[0-9][.0-9]+' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||||
&& phalcon commands | grep -E '[.0-9]+' \
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
|
||||||
&& 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+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
|
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||||
&& sass --version | grep -E '[.0-9]+' \
|
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||||
&& webpack --version | grep -E '[.0-9]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
\
|
||||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
# -------------------- Composer --------------------
|
||||||
&& true
|
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||||
|
\
|
||||||
|
# -------------------- PIP --------------------
|
||||||
|
&& ansible --version | grep -E '^ansible [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]+$' \
|
||||||
|
\
|
||||||
|
# -------------------- 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/.cache/ \
|
||||||
|
&& rm -rf /home/devilbox/.config/ \
|
||||||
|
&& rm -rf /root/.ansible \
|
||||||
|
&& rm -rf /root/.console \
|
||||||
|
&& rm -rf /root/.composer \
|
||||||
|
&& rm -rf /root/.drush \
|
||||||
|
&& rm -rf /root/.pm2 \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -412,7 +614,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
|||||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Volumes
|
### Volumes
|
||||||
###
|
###
|
||||||
@@ -436,4 +637,5 @@ WORKDIR /shared/httpd
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.5 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.5-work" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.5-work"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.5-work"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-work"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -23,26 +31,27 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
###
|
###
|
||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
\
|
||||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||||
|
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||||
|
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" 2>/dev/null | 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 \
|
&& 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 \
|
&& 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 \
|
&& 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 \
|
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
|
||||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
|
||||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 -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 \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
@@ -63,7 +72,9 @@ RUN set -x \
|
|||||||
git \
|
git \
|
||||||
git-flow \
|
git-flow \
|
||||||
git-svn \
|
git-svn \
|
||||||
|
ghostscript \
|
||||||
graphviz \
|
graphviz \
|
||||||
|
gsfonts \
|
||||||
hostname \
|
hostname \
|
||||||
htop \
|
htop \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
@@ -71,26 +82,24 @@ RUN set -x \
|
|||||||
jq \
|
jq \
|
||||||
less \
|
less \
|
||||||
libc-dev \
|
libc-dev \
|
||||||
libffi-dev\
|
libffi-dev \
|
||||||
libssl-dev\
|
libssl-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
mongodb-org-shell \
|
||||||
mongodb-org-tools \
|
mongodb-org-tools \
|
||||||
moreutils \
|
moreutils \
|
||||||
mysql-client \
|
mysql-client \
|
||||||
|
mupdf \
|
||||||
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
net-tools \
|
net-tools \
|
||||||
netcat \
|
netcat \
|
||||||
nodejs \
|
|
||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
postgresql-client \
|
||||||
python-cffi \
|
|
||||||
python-dev \
|
|
||||||
python-pip \
|
|
||||||
python-wheel \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
@@ -106,36 +115,60 @@ RUN set -x \
|
|||||||
w3m \
|
w3m \
|
||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
wkhtmltopdf \
|
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
yarn \
|
||||||
zip \
|
zip \
|
||||||
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& 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/* \
|
||||||
\
|
\
|
||||||
# Get newer pip version
|
|
||||||
&& pip install --upgrade pip \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
RUN set -x \
|
###
|
||||||
# composer
|
### Install custom software
|
||||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
###
|
||||||
# ansible
|
RUN set -eux \
|
||||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
# -------------------- composer --------------------
|
||||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||||
|
&& curl -sS -L --fail https://getcomposer.org/composer-2.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 \
|
||||||
\
|
\
|
||||||
# asgardcms
|
\
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
|
# -------------------- pip --------------------
|
||||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/asgardcms \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libpython-dev \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python \
|
||||||
\
|
\
|
||||||
# awesomeci
|
\
|
||||||
|
# -------------------- nvm --------------------
|
||||||
|
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||||
|
&& cd /opt/nvm \
|
||||||
|
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||||
|
\
|
||||||
|
&& { \
|
||||||
|
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' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -144,78 +177,68 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/awesome-ci \
|
&& rm -rf /usr/local/src/awesome-ci \
|
||||||
\
|
\
|
||||||
&& gem install mixlib-config -v 2.2.4 \
|
\
|
||||||
&& gem install rb-inotify -v 0.9.10 \
|
# -------------------- deployer --------------------
|
||||||
&& gem install mdl \
|
&& curl -sS -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
&& gem install scss_lint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# codeception
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
|
||||||
\
|
|
||||||
# deployer
|
|
||||||
&& curl -sS 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 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||||
&& cd /usr/local/src/drush7 \
|
&& cd /usr/local/src/drush7 \
|
||||||
&& git checkout 7.4.0 \
|
&& git checkout 7.4.0 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||||
&& rm -rf /usr/local/src/drush7/.git \
|
&& rm -rf /usr/local/src/drush7/.git \
|
||||||
&& rm -rf /usr/local/src/drush7/docs \
|
&& rm -rf /usr/local/src/drush7/docs \
|
||||||
&& rm -rf /usr/local/src/drush7/examples \
|
&& rm -rf /usr/local/src/drush7/examples \
|
||||||
&& rm -rf /usr/local/src/drush7/misc \
|
&& rm -rf /usr/local/src/drush7/misc \
|
||||||
\
|
\
|
||||||
# drush8
|
\
|
||||||
|
# -------------------- drush8 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||||
&& cd /usr/local/src/drush8 \
|
&& cd /usr/local/src/drush8 \
|
||||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||||
&& rm -rf /usr/local/src/drush8/.git \
|
&& rm -rf /usr/local/src/drush8/.git \
|
||||||
&& rm -rf /usr/local/src/drush8/docs \
|
&& rm -rf /usr/local/src/drush8/docs \
|
||||||
&& rm -rf /usr/local/src/drush8/examples \
|
&& rm -rf /usr/local/src/drush8/examples \
|
||||||
&& rm -rf /usr/local/src/drush8/misc \
|
&& rm -rf /usr/local/src/drush8/misc \
|
||||||
\
|
\
|
||||||
# drupalconsole
|
\
|
||||||
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
|
# -------------------- drupalconsole --------------------
|
||||||
|
&& DURL="https://github.com/hechoendrupal/drupal-console-launcher/releases/download/1.9.4/drupal.phar" \
|
||||||
|
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||||
&& chmod +x /usr/local/bin/drupal \
|
&& chmod +x /usr/local/bin/drupal \
|
||||||
# gitflow
|
\
|
||||||
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
\
|
\
|
||||||
# grunt
|
\
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
# -------------------- laravel --------------------
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# laravel
|
|
||||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||||
&& cd /usr/local/src/laravel-installer \
|
&& cd /usr/local/src/laravel-installer \
|
||||||
&& git checkout v2.0.0 \
|
&& git checkout v2.0.0 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
|
&& 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' \
|
||||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
|
||||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||||
\
|
\
|
||||||
# linkcheck
|
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
\
|
||||||
|
# -------------------- linkcheck --------------------
|
||||||
|
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||||
&& chmod +x /usr/local/bin/linkcheck \
|
&& chmod +x /usr/local/bin/linkcheck \
|
||||||
\
|
\
|
||||||
# linuxbrew
|
\
|
||||||
|
# -------------------- linuxbrew --------------------
|
||||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
@@ -226,12 +249,14 @@ RUN set -x \
|
|||||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||||
\
|
\
|
||||||
# mhsendmail
|
\
|
||||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
# -------------------- mhsendmail --------------------
|
||||||
|
&& 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 \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||||
\
|
\
|
||||||
# mysqldumpsecure
|
\
|
||||||
|
# -------------------- mysqldumpsecure --------------------
|
||||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||||
&& cd /usr/local/src/mysqldump-secure \
|
&& cd /usr/local/src/mysqldump-secure \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -253,68 +278,74 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||||
\
|
\
|
||||||
# phalcon
|
\
|
||||||
|
# -------------------- phalcon --------------------
|
||||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||||
&& cd /usr/local/src/phalcon-devtools \
|
&& cd /usr/local/src/phalcon-devtools \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout v3.4.11 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||||
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||||
&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \
|
&& ln -sf /usr/local/src/phalcon-devtools/phalcon /usr/local/bin/phalcon \
|
||||||
|
&& chmod +x /usr/local/bin/phalcon \
|
||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||||
\
|
\
|
||||||
# phpcs
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
# -------------------- phpcs --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
# phpcbf
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
# -------------------- phpcbf --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
# php-cs-fixer
|
\
|
||||||
&& curl -sS -L 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 \
|
# -------------------- 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 \
|
||||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
# phpunit
|
\
|
||||||
&& curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
# -------------------- phpmd --------------------
|
||||||
|
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpunit --------------------
|
||||||
|
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
# photon
|
\
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
|
# -------------------- symfony --------------------
|
||||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
|
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||||
\
|
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||||
# pm2
|
|
||||||
&& until npm install pm2 -g; do sleep 1; done \
|
|
||||||
# sass
|
|
||||||
&& gem install sass \
|
|
||||||
# symfony
|
|
||||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& chmod +x /usr/local/bin/symfony \
|
||||||
# webpack
|
\
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# wpcli
|
|
||||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
|
||||||
&& chmod +x /usr/local/bin/wp \
|
|
||||||
# yamllint
|
|
||||||
&& 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 libpython-dev python-setuptools libyaml-dev \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
\
|
\
|
||||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
# cleanup
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
|
\
|
||||||
|
# -------------------- cleanup --------------------
|
||||||
&& rm -rf /home/${MY_USER}/.*json \
|
&& rm -rf /home/${MY_USER}/.*json \
|
||||||
&& rm -rf /home/${MY_USER}/.cache \
|
&& rm -rf /home/${MY_USER}/.cache \
|
||||||
&& rm -rf /home/${MY_USER}/.composer \
|
&& rm -rf /home/${MY_USER}/.composer \
|
||||||
&& rm -rf /home/${MY_USER}/.config \
|
&& rm -rf /home/${MY_USER}/.config \
|
||||||
&& rm -rf /home/${MY_USER}/.drush \
|
&& rm -rf /home/${MY_USER}/.drush \
|
||||||
&& rm -rf /home/${MY_USER}/.gem \
|
|
||||||
&& rm -rf /home/${MY_USER}/.npm \
|
|
||||||
&& rm -rf /home/${MY_USER}/.subversion \
|
&& rm -rf /home/${MY_USER}/.subversion \
|
||||||
&& rm -rf /home/${MY_USER}/.v8* \
|
&& rm -rf /home/${MY_USER}/.v8* \
|
||||||
\
|
\
|
||||||
@@ -323,15 +354,165 @@ RUN set -x \
|
|||||||
&& rm -rf /root/.composer \
|
&& rm -rf /root/.composer \
|
||||||
&& rm -rf /root/.config \
|
&& rm -rf /root/.config \
|
||||||
&& rm -rf /root/.drush \
|
&& rm -rf /root/.drush \
|
||||||
&& rm -rf /root/.gem \
|
|
||||||
&& rm -rf /root/.npm \
|
|
||||||
&& rm -rf /root/.subversion \
|
&& rm -rf /root/.subversion \
|
||||||
&& rm -rf /root/.v8* \
|
&& rm -rf /root/.v8* \
|
||||||
\
|
\
|
||||||
&& rm -rf /tmp/* \
|
&& 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 /usr/local/src/composer/cache/* || true) \
|
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Composer (PHP)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- asgardcms --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require asgardcms/asgardcms-installer \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- codeception --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- lumen --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- 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 --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### 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 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& 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 \
|
||||||
|
&& rm -rf /home/devilbox/.npm \
|
||||||
|
&& rm -rf /home/devilbox/.cache \
|
||||||
|
&& rm -rf /home/devilbox/.config \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install gem (Ruby)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- mixlib_config --------------------
|
||||||
|
&& gem install mixlib-config -v 2.2.4 \
|
||||||
|
\
|
||||||
|
# -------------------- ffi --------------------
|
||||||
|
&& gem install ffi -v 1.12.2 \
|
||||||
|
\
|
||||||
|
# -------------------- rb_inotify --------------------
|
||||||
|
&& gem install rb-inotify -v 0.9.10 \
|
||||||
|
\
|
||||||
|
# -------------------- mdl --------------------
|
||||||
|
&& gem install mdl -v 0.5.0 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.gem \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install pip (Python) packages
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- ansible --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall ansible || true \
|
||||||
|
\
|
||||||
|
# -------------------- yamllint --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
|
\
|
||||||
|
# -------------------- yq --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.cache/pip \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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 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 strip --strip-all -p 2>/dev/null || true) \
|
||||||
@@ -343,7 +524,10 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
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}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||||
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"; \
|
||||||
@@ -361,7 +545,7 @@ RUN \
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -377,41 +561,67 @@ RUN set -x \
|
|||||||
&& 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
|
||||||
|
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
# -------------------- Software --------------------
|
||||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
|
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||||
&& mdl --version | grep -E '[.0-9]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||||
&& eslint -v | grep -E '[.0-9]+' \
|
|
||||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& mdlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& gulp --version | grep -E '[.0-9]+' \
|
|
||||||
\
|
|
||||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \
|
|
||||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
||||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
|
&& drupal --version | grep -E 'Drupal Console Launcher\s*[0-9][.0-9]' \
|
||||||
&& git-flow version | grep -E '[.0-9]+' \
|
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||||
&& grunt --version | grep -E '[.0-9]+' \
|
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||||
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[0-9][.0-9]+' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||||
&& phalcon commands | grep -E '[.0-9]+' \
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
|
||||||
&& 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+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& photon --version | grep -E 'Installer [.0-9]+' \
|
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||||
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
|
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||||
&& sass --version | grep -E '[.0-9]+' \
|
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& webpack --version | grep -E '[.0-9]+' \
|
\
|
||||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
# -------------------- Composer --------------------
|
||||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||||
&& true
|
&& 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]+$' \
|
||||||
|
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
||||||
|
\
|
||||||
|
# -------------------- PIP --------------------
|
||||||
|
&& ansible --version | grep -E '^ansible [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]+$' \
|
||||||
|
\
|
||||||
|
# -------------------- 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/.cache/ \
|
||||||
|
&& rm -rf /home/devilbox/.config/ \
|
||||||
|
&& rm -rf /root/.ansible \
|
||||||
|
&& rm -rf /root/.console \
|
||||||
|
&& rm -rf /root/.composer \
|
||||||
|
&& rm -rf /root/.drush \
|
||||||
|
&& rm -rf /root/.pm2 \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -426,7 +636,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
|||||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Volumes
|
### Volumes
|
||||||
###
|
###
|
||||||
@@ -450,4 +659,5 @@ WORKDIR /shared/httpd
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 5.6 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="5.6-work" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="5.6-work"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 5.6-work"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-work"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -23,26 +31,26 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
###
|
###
|
||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
\
|
||||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& echo "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 - \
|
||||||
&& 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 \
|
&& 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 \
|
&& 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 \
|
&& 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 jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
||||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
|
||||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
|
||||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
&& 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 -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 \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
@@ -54,6 +62,7 @@ RUN set -x \
|
|||||||
blackfire-agent \
|
blackfire-agent \
|
||||||
build-essential \
|
build-essential \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
|
certbot \
|
||||||
coreutils \
|
coreutils \
|
||||||
dnsutils \
|
dnsutils \
|
||||||
dos2unix \
|
dos2unix \
|
||||||
@@ -63,7 +72,9 @@ RUN set -x \
|
|||||||
git \
|
git \
|
||||||
git-flow \
|
git-flow \
|
||||||
git-svn \
|
git-svn \
|
||||||
|
ghostscript \
|
||||||
graphviz \
|
graphviz \
|
||||||
|
gsfonts \
|
||||||
hostname \
|
hostname \
|
||||||
htop \
|
htop \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
@@ -71,26 +82,24 @@ RUN set -x \
|
|||||||
jq \
|
jq \
|
||||||
less \
|
less \
|
||||||
libc-dev \
|
libc-dev \
|
||||||
libffi-dev\
|
libffi-dev \
|
||||||
libssl-dev\
|
libssl-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
mongodb-org-shell \
|
||||||
mongodb-org-tools \
|
mongodb-org-tools \
|
||||||
moreutils \
|
moreutils \
|
||||||
mysql-client \
|
mysql-client \
|
||||||
|
mupdf \
|
||||||
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
net-tools \
|
net-tools \
|
||||||
netcat \
|
netcat \
|
||||||
nodejs \
|
|
||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
postgresql-client \
|
||||||
python-cffi \
|
|
||||||
python-dev \
|
|
||||||
python-pip \
|
|
||||||
python-wheel \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
@@ -106,36 +115,61 @@ RUN set -x \
|
|||||||
w3m \
|
w3m \
|
||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
wkhtmltopdf \
|
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
yarn \
|
||||||
zip \
|
zip \
|
||||||
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
|
zsh-common \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& 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/* \
|
||||||
\
|
\
|
||||||
# Get newer pip version
|
|
||||||
&& pip install --upgrade pip \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
RUN set -x \
|
###
|
||||||
# composer
|
### Install custom software
|
||||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
###
|
||||||
# ansible
|
RUN set -eux \
|
||||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
# -------------------- composer --------------------
|
||||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||||
|
&& curl -sS -L --fail https://getcomposer.org/composer-2.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 \
|
||||||
\
|
\
|
||||||
# asgardcms
|
\
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
|
# -------------------- pip --------------------
|
||||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/asgardcms \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libpython-dev \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python \
|
||||||
\
|
\
|
||||||
# awesomeci
|
\
|
||||||
|
# -------------------- nvm --------------------
|
||||||
|
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||||
|
&& cd /opt/nvm \
|
||||||
|
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||||
|
\
|
||||||
|
&& { \
|
||||||
|
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' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -144,91 +178,82 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/awesome-ci \
|
&& rm -rf /usr/local/src/awesome-ci \
|
||||||
\
|
\
|
||||||
&& gem install mixlib-config -v 2.2.4 \
|
\
|
||||||
&& gem install rb-inotify -v 0.9.10 \
|
# -------------------- deployer --------------------
|
||||||
&& gem install mdl \
|
&& curl -sS -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
&& gem install scss_lint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# codeception
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
|
||||||
\
|
|
||||||
# deployer
|
|
||||||
&& curl -sS 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 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||||
&& cd /usr/local/src/drush7 \
|
&& cd /usr/local/src/drush7 \
|
||||||
&& git checkout 7.4.0 \
|
&& git checkout 7.4.0 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||||
&& rm -rf /usr/local/src/drush7/.git \
|
&& rm -rf /usr/local/src/drush7/.git \
|
||||||
&& rm -rf /usr/local/src/drush7/docs \
|
&& rm -rf /usr/local/src/drush7/docs \
|
||||||
&& rm -rf /usr/local/src/drush7/examples \
|
&& rm -rf /usr/local/src/drush7/examples \
|
||||||
&& rm -rf /usr/local/src/drush7/misc \
|
&& rm -rf /usr/local/src/drush7/misc \
|
||||||
\
|
\
|
||||||
# drush8
|
\
|
||||||
|
# -------------------- drush8 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||||
&& cd /usr/local/src/drush8 \
|
&& cd /usr/local/src/drush8 \
|
||||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||||
&& rm -rf /usr/local/src/drush8/.git \
|
&& rm -rf /usr/local/src/drush8/.git \
|
||||||
&& rm -rf /usr/local/src/drush8/docs \
|
&& rm -rf /usr/local/src/drush8/docs \
|
||||||
&& rm -rf /usr/local/src/drush8/examples \
|
&& rm -rf /usr/local/src/drush8/examples \
|
||||||
&& rm -rf /usr/local/src/drush8/misc \
|
&& rm -rf /usr/local/src/drush8/misc \
|
||||||
\
|
\
|
||||||
# drush9
|
\
|
||||||
|
# -------------------- drush9 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
||||||
&& cd /usr/local/src/drush9 \
|
&& cd /usr/local/src/drush9 \
|
||||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && php -d memory_limit=-1 `which composer` install --no-interaction --no-progress' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress' \
|
||||||
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
||||||
&& rm -rf /usr/local/src/drush9/.git \
|
&& rm -rf /usr/local/src/drush9/.git \
|
||||||
&& rm -rf /usr/local/src/drush9/docs \
|
&& rm -rf /usr/local/src/drush9/docs \
|
||||||
&& rm -rf /usr/local/src/drush9/examples \
|
&& rm -rf /usr/local/src/drush9/examples \
|
||||||
&& rm -rf /usr/local/src/drush9/misc \
|
&& rm -rf /usr/local/src/drush9/misc \
|
||||||
\
|
\
|
||||||
# drupalconsole
|
\
|
||||||
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
|
# -------------------- drupalconsole --------------------
|
||||||
|
&& DURL="https://github.com/hechoendrupal/drupal-console-launcher/releases/download/1.9.4/drupal.phar" \
|
||||||
|
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||||
&& chmod +x /usr/local/bin/drupal \
|
&& chmod +x /usr/local/bin/drupal \
|
||||||
# gitflow
|
\
|
||||||
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
\
|
\
|
||||||
# grunt
|
\
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
# -------------------- laravel --------------------
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# laravel
|
|
||||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||||
&& cd /usr/local/src/laravel-installer \
|
&& cd /usr/local/src/laravel-installer \
|
||||||
&& git checkout v2.0.0 \
|
&& git checkout v2.0.0 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
|
&& 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' \
|
||||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
|
||||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||||
\
|
\
|
||||||
# linkcheck
|
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
\
|
||||||
|
# -------------------- linkcheck --------------------
|
||||||
|
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||||
&& chmod +x /usr/local/bin/linkcheck \
|
&& chmod +x /usr/local/bin/linkcheck \
|
||||||
\
|
\
|
||||||
# linuxbrew
|
\
|
||||||
|
# -------------------- linuxbrew --------------------
|
||||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
@@ -239,12 +264,14 @@ RUN set -x \
|
|||||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||||
\
|
\
|
||||||
# mhsendmail
|
\
|
||||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
# -------------------- mhsendmail --------------------
|
||||||
|
&& 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 \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||||
\
|
\
|
||||||
# mysqldumpsecure
|
\
|
||||||
|
# -------------------- mysqldumpsecure --------------------
|
||||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||||
&& cd /usr/local/src/mysqldump-secure \
|
&& cd /usr/local/src/mysqldump-secure \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -266,68 +293,74 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||||
\
|
\
|
||||||
# phalcon
|
\
|
||||||
|
# -------------------- phalcon --------------------
|
||||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||||
&& cd /usr/local/src/phalcon-devtools \
|
&& cd /usr/local/src/phalcon-devtools \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout v3.4.11 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||||
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||||
&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \
|
&& ln -sf /usr/local/src/phalcon-devtools/phalcon /usr/local/bin/phalcon \
|
||||||
|
&& chmod +x /usr/local/bin/phalcon \
|
||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||||
\
|
\
|
||||||
# phpcs
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
# -------------------- phpcs --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
# phpcbf
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
# -------------------- phpcbf --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
# php-cs-fixer
|
\
|
||||||
&& curl -sS -L https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
|
# -------------------- 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 \
|
||||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
# phpunit
|
\
|
||||||
&& curl -qL https://phar.phpunit.de/phpunit-5.phar > /usr/local/bin/phpunit 2>/dev/null \
|
# -------------------- phpmd --------------------
|
||||||
|
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpunit --------------------
|
||||||
|
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-5.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
# photon
|
\
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
|
# -------------------- symfony --------------------
|
||||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
|
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||||
\
|
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||||
# pm2
|
|
||||||
&& until npm install pm2 -g; do sleep 1; done \
|
|
||||||
# sass
|
|
||||||
&& gem install sass \
|
|
||||||
# symfony
|
|
||||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& chmod +x /usr/local/bin/symfony \
|
||||||
# webpack
|
\
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# wpcli
|
|
||||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
|
||||||
&& chmod +x /usr/local/bin/wp \
|
|
||||||
# yamllint
|
|
||||||
&& 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 libpython-dev python-setuptools libyaml-dev \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
\
|
\
|
||||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
# cleanup
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
|
\
|
||||||
|
# -------------------- cleanup --------------------
|
||||||
&& rm -rf /home/${MY_USER}/.*json \
|
&& rm -rf /home/${MY_USER}/.*json \
|
||||||
&& rm -rf /home/${MY_USER}/.cache \
|
&& rm -rf /home/${MY_USER}/.cache \
|
||||||
&& rm -rf /home/${MY_USER}/.composer \
|
&& rm -rf /home/${MY_USER}/.composer \
|
||||||
&& rm -rf /home/${MY_USER}/.config \
|
&& rm -rf /home/${MY_USER}/.config \
|
||||||
&& rm -rf /home/${MY_USER}/.drush \
|
&& rm -rf /home/${MY_USER}/.drush \
|
||||||
&& rm -rf /home/${MY_USER}/.gem \
|
|
||||||
&& rm -rf /home/${MY_USER}/.npm \
|
|
||||||
&& rm -rf /home/${MY_USER}/.subversion \
|
&& rm -rf /home/${MY_USER}/.subversion \
|
||||||
&& rm -rf /home/${MY_USER}/.v8* \
|
&& rm -rf /home/${MY_USER}/.v8* \
|
||||||
\
|
\
|
||||||
@@ -336,15 +369,162 @@ RUN set -x \
|
|||||||
&& rm -rf /root/.composer \
|
&& rm -rf /root/.composer \
|
||||||
&& rm -rf /root/.config \
|
&& rm -rf /root/.config \
|
||||||
&& rm -rf /root/.drush \
|
&& rm -rf /root/.drush \
|
||||||
&& rm -rf /root/.gem \
|
|
||||||
&& rm -rf /root/.npm \
|
|
||||||
&& rm -rf /root/.subversion \
|
&& rm -rf /root/.subversion \
|
||||||
&& rm -rf /root/.v8* \
|
&& rm -rf /root/.v8* \
|
||||||
\
|
\
|
||||||
&& rm -rf /tmp/* \
|
&& 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 /usr/local/src/composer/cache/* || true) \
|
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Composer (PHP)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- asgardcms --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require asgardcms/asgardcms-installer \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- codeception --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- lumen --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- 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 --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### 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 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& 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 \
|
||||||
|
&& rm -rf /home/devilbox/.npm \
|
||||||
|
&& rm -rf /home/devilbox/.cache \
|
||||||
|
&& rm -rf /home/devilbox/.config \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 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 /root/.gem \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install pip (Python) packages
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- ansible --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall ansible || true \
|
||||||
|
\
|
||||||
|
# -------------------- yamllint --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
|
\
|
||||||
|
# -------------------- yq --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.cache/pip \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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 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 strip --strip-all -p 2>/dev/null || true) \
|
||||||
@@ -356,7 +536,10 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
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}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||||
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"; \
|
||||||
@@ -374,7 +557,7 @@ RUN \
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -390,42 +573,68 @@ RUN set -x \
|
|||||||
&& 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
|
||||||
|
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
# -------------------- Software --------------------
|
||||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
|
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||||
&& mdl --version | grep -E '[.0-9]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||||
&& eslint -v | grep -E '[.0-9]+' \
|
|
||||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& mdlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& gulp --version | grep -E '[.0-9]+' \
|
|
||||||
\
|
|
||||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \
|
|
||||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
||||||
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
||||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
|
&& drupal --version | grep -E 'Drupal Console Launcher\s*[0-9][.0-9]' \
|
||||||
&& git-flow version | grep -E '[.0-9]+' \
|
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||||
&& grunt --version | grep -E '[.0-9]+' \
|
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||||
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[0-9][.0-9]+' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||||
&& phalcon commands | grep -E '[.0-9]+' \
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
|
||||||
&& 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+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& photon --version | grep -E 'Installer [.0-9]+' \
|
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||||
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
|
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||||
&& sass --version | grep -E '[.0-9]+' \
|
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& webpack --version | grep -E '[.0-9]+' \
|
\
|
||||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
# -------------------- Composer --------------------
|
||||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||||
&& true
|
&& 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]+$' \
|
||||||
|
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
||||||
|
\
|
||||||
|
# -------------------- PIP --------------------
|
||||||
|
&& ansible --version | grep -E '^ansible [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]+$' \
|
||||||
|
\
|
||||||
|
# -------------------- 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/.cache/ \
|
||||||
|
&& rm -rf /home/devilbox/.config/ \
|
||||||
|
&& rm -rf /root/.ansible \
|
||||||
|
&& rm -rf /root/.console \
|
||||||
|
&& rm -rf /root/.composer \
|
||||||
|
&& rm -rf /root/.drush \
|
||||||
|
&& rm -rf /root/.pm2 \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -440,7 +649,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
|||||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Volumes
|
### Volumes
|
||||||
###
|
###
|
||||||
@@ -464,4 +672,5 @@ WORKDIR /shared/httpd
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 7.0 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="7.0-work" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="7.0-work"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 7.0-work"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-work"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -23,26 +31,26 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
###
|
###
|
||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
\
|
||||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& echo "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 - \
|
||||||
&& 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 \
|
&& 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 \
|
&& 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 \
|
&& 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 jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
||||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
|
||||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
|
||||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
&& 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 -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 \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
@@ -54,6 +62,7 @@ RUN set -x \
|
|||||||
blackfire-agent \
|
blackfire-agent \
|
||||||
build-essential \
|
build-essential \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
|
certbot \
|
||||||
coreutils \
|
coreutils \
|
||||||
dnsutils \
|
dnsutils \
|
||||||
dos2unix \
|
dos2unix \
|
||||||
@@ -63,7 +72,9 @@ RUN set -x \
|
|||||||
git \
|
git \
|
||||||
git-flow \
|
git-flow \
|
||||||
git-svn \
|
git-svn \
|
||||||
|
ghostscript \
|
||||||
graphviz \
|
graphviz \
|
||||||
|
gsfonts \
|
||||||
hostname \
|
hostname \
|
||||||
htop \
|
htop \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
@@ -71,26 +82,24 @@ RUN set -x \
|
|||||||
jq \
|
jq \
|
||||||
less \
|
less \
|
||||||
libc-dev \
|
libc-dev \
|
||||||
libffi-dev\
|
libffi-dev \
|
||||||
libssl-dev\
|
libssl-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
mongodb-org-shell \
|
||||||
mongodb-org-tools \
|
mongodb-org-tools \
|
||||||
moreutils \
|
moreutils \
|
||||||
mysql-client \
|
mysql-client \
|
||||||
|
mupdf \
|
||||||
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
net-tools \
|
net-tools \
|
||||||
netcat \
|
netcat \
|
||||||
nodejs \
|
|
||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
postgresql-client \
|
||||||
python-cffi \
|
|
||||||
python-dev \
|
|
||||||
python-pip \
|
|
||||||
python-wheel \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
@@ -106,36 +115,61 @@ RUN set -x \
|
|||||||
w3m \
|
w3m \
|
||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
wkhtmltopdf \
|
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
yarn \
|
||||||
zip \
|
zip \
|
||||||
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
|
zsh-common \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& 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/* \
|
||||||
\
|
\
|
||||||
# Get newer pip version
|
|
||||||
&& pip install --upgrade pip \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
RUN set -x \
|
###
|
||||||
# composer
|
### Install custom software
|
||||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
###
|
||||||
# ansible
|
RUN set -eux \
|
||||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
# -------------------- composer --------------------
|
||||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||||
|
&& curl -sS -L --fail https://getcomposer.org/composer-2.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 \
|
||||||
\
|
\
|
||||||
# asgardcms
|
\
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
|
# -------------------- pip --------------------
|
||||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/asgardcms \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libpython-dev \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python \
|
||||||
\
|
\
|
||||||
# awesomeci
|
\
|
||||||
|
# -------------------- nvm --------------------
|
||||||
|
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||||
|
&& cd /opt/nvm \
|
||||||
|
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||||
|
\
|
||||||
|
&& { \
|
||||||
|
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' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -144,91 +178,82 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/awesome-ci \
|
&& rm -rf /usr/local/src/awesome-ci \
|
||||||
\
|
\
|
||||||
&& gem install mixlib-config -v 2.2.4 \
|
\
|
||||||
&& gem install rb-inotify -v 0.9.10 \
|
# -------------------- deployer --------------------
|
||||||
&& gem install mdl \
|
&& curl -sS -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
&& gem install scss_lint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# codeception
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
|
||||||
\
|
|
||||||
# deployer
|
|
||||||
&& curl -sS 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 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||||
&& cd /usr/local/src/drush7 \
|
&& cd /usr/local/src/drush7 \
|
||||||
&& git checkout 7.4.0 \
|
&& git checkout 7.4.0 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||||
&& rm -rf /usr/local/src/drush7/.git \
|
&& rm -rf /usr/local/src/drush7/.git \
|
||||||
&& rm -rf /usr/local/src/drush7/docs \
|
&& rm -rf /usr/local/src/drush7/docs \
|
||||||
&& rm -rf /usr/local/src/drush7/examples \
|
&& rm -rf /usr/local/src/drush7/examples \
|
||||||
&& rm -rf /usr/local/src/drush7/misc \
|
&& rm -rf /usr/local/src/drush7/misc \
|
||||||
\
|
\
|
||||||
# drush8
|
\
|
||||||
|
# -------------------- drush8 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||||
&& cd /usr/local/src/drush8 \
|
&& cd /usr/local/src/drush8 \
|
||||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||||
&& rm -rf /usr/local/src/drush8/.git \
|
&& rm -rf /usr/local/src/drush8/.git \
|
||||||
&& rm -rf /usr/local/src/drush8/docs \
|
&& rm -rf /usr/local/src/drush8/docs \
|
||||||
&& rm -rf /usr/local/src/drush8/examples \
|
&& rm -rf /usr/local/src/drush8/examples \
|
||||||
&& rm -rf /usr/local/src/drush8/misc \
|
&& rm -rf /usr/local/src/drush8/misc \
|
||||||
\
|
\
|
||||||
# drush9
|
\
|
||||||
|
# -------------------- drush9 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
||||||
&& cd /usr/local/src/drush9 \
|
&& cd /usr/local/src/drush9 \
|
||||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && php -d memory_limit=-1 `which composer` install --no-interaction --no-progress' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress' \
|
||||||
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
||||||
&& rm -rf /usr/local/src/drush9/.git \
|
&& rm -rf /usr/local/src/drush9/.git \
|
||||||
&& rm -rf /usr/local/src/drush9/docs \
|
&& rm -rf /usr/local/src/drush9/docs \
|
||||||
&& rm -rf /usr/local/src/drush9/examples \
|
&& rm -rf /usr/local/src/drush9/examples \
|
||||||
&& rm -rf /usr/local/src/drush9/misc \
|
&& rm -rf /usr/local/src/drush9/misc \
|
||||||
\
|
\
|
||||||
# drupalconsole
|
\
|
||||||
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
|
# -------------------- drupalconsole --------------------
|
||||||
|
&& DURL="https://github.com/hechoendrupal/drupal-console-launcher/releases/download/1.9.4/drupal.phar" \
|
||||||
|
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||||
&& chmod +x /usr/local/bin/drupal \
|
&& chmod +x /usr/local/bin/drupal \
|
||||||
# gitflow
|
\
|
||||||
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
\
|
\
|
||||||
# grunt
|
\
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
# -------------------- laravel --------------------
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# laravel
|
|
||||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||||
&& cd /usr/local/src/laravel-installer \
|
&& cd /usr/local/src/laravel-installer \
|
||||||
&& git checkout v2.0.0 \
|
&& git checkout v2.0.0 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
|
&& 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' \
|
||||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
|
||||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||||
\
|
\
|
||||||
# linkcheck
|
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
\
|
||||||
|
# -------------------- linkcheck --------------------
|
||||||
|
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||||
&& chmod +x /usr/local/bin/linkcheck \
|
&& chmod +x /usr/local/bin/linkcheck \
|
||||||
\
|
\
|
||||||
# linuxbrew
|
\
|
||||||
|
# -------------------- linuxbrew --------------------
|
||||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
@@ -239,12 +264,14 @@ RUN set -x \
|
|||||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||||
\
|
\
|
||||||
# mhsendmail
|
\
|
||||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
# -------------------- mhsendmail --------------------
|
||||||
|
&& 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 \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||||
\
|
\
|
||||||
# mysqldumpsecure
|
\
|
||||||
|
# -------------------- mysqldumpsecure --------------------
|
||||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||||
&& cd /usr/local/src/mysqldump-secure \
|
&& cd /usr/local/src/mysqldump-secure \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -266,68 +293,74 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||||
\
|
\
|
||||||
# phalcon
|
\
|
||||||
|
# -------------------- phalcon --------------------
|
||||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||||
&& cd /usr/local/src/phalcon-devtools \
|
&& cd /usr/local/src/phalcon-devtools \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout v3.4.11 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||||
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||||
&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \
|
&& ln -sf /usr/local/src/phalcon-devtools/phalcon /usr/local/bin/phalcon \
|
||||||
|
&& chmod +x /usr/local/bin/phalcon \
|
||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||||
\
|
\
|
||||||
# phpcs
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
# -------------------- phpcs --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
# phpcbf
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
# -------------------- phpcbf --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
# php-cs-fixer
|
\
|
||||||
&& curl -sS -L https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
|
# -------------------- 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 \
|
||||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
# phpunit
|
\
|
||||||
&& curl -qL https://phar.phpunit.de/phpunit-6.phar > /usr/local/bin/phpunit 2>/dev/null \
|
# -------------------- phpmd --------------------
|
||||||
|
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpunit --------------------
|
||||||
|
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-6.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
# photon
|
\
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
|
# -------------------- symfony --------------------
|
||||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
|
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||||
\
|
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||||
# pm2
|
|
||||||
&& until npm install pm2 -g; do sleep 1; done \
|
|
||||||
# sass
|
|
||||||
&& gem install sass \
|
|
||||||
# symfony
|
|
||||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& chmod +x /usr/local/bin/symfony \
|
||||||
# webpack
|
\
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# wpcli
|
|
||||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
|
||||||
&& chmod +x /usr/local/bin/wp \
|
|
||||||
# yamllint
|
|
||||||
&& 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 libpython-dev python-setuptools libyaml-dev \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
\
|
\
|
||||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
# cleanup
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
|
\
|
||||||
|
# -------------------- cleanup --------------------
|
||||||
&& rm -rf /home/${MY_USER}/.*json \
|
&& rm -rf /home/${MY_USER}/.*json \
|
||||||
&& rm -rf /home/${MY_USER}/.cache \
|
&& rm -rf /home/${MY_USER}/.cache \
|
||||||
&& rm -rf /home/${MY_USER}/.composer \
|
&& rm -rf /home/${MY_USER}/.composer \
|
||||||
&& rm -rf /home/${MY_USER}/.config \
|
&& rm -rf /home/${MY_USER}/.config \
|
||||||
&& rm -rf /home/${MY_USER}/.drush \
|
&& rm -rf /home/${MY_USER}/.drush \
|
||||||
&& rm -rf /home/${MY_USER}/.gem \
|
|
||||||
&& rm -rf /home/${MY_USER}/.npm \
|
|
||||||
&& rm -rf /home/${MY_USER}/.subversion \
|
&& rm -rf /home/${MY_USER}/.subversion \
|
||||||
&& rm -rf /home/${MY_USER}/.v8* \
|
&& rm -rf /home/${MY_USER}/.v8* \
|
||||||
\
|
\
|
||||||
@@ -336,15 +369,162 @@ RUN set -x \
|
|||||||
&& rm -rf /root/.composer \
|
&& rm -rf /root/.composer \
|
||||||
&& rm -rf /root/.config \
|
&& rm -rf /root/.config \
|
||||||
&& rm -rf /root/.drush \
|
&& rm -rf /root/.drush \
|
||||||
&& rm -rf /root/.gem \
|
|
||||||
&& rm -rf /root/.npm \
|
|
||||||
&& rm -rf /root/.subversion \
|
&& rm -rf /root/.subversion \
|
||||||
&& rm -rf /root/.v8* \
|
&& rm -rf /root/.v8* \
|
||||||
\
|
\
|
||||||
&& rm -rf /tmp/* \
|
&& 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 /usr/local/src/composer/cache/* || true) \
|
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Composer (PHP)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- asgardcms --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require asgardcms/asgardcms-installer \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- codeception --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- lumen --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- 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 --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### 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 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& 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 \
|
||||||
|
&& rm -rf /home/devilbox/.npm \
|
||||||
|
&& rm -rf /home/devilbox/.cache \
|
||||||
|
&& rm -rf /home/devilbox/.config \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 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 /root/.gem \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install pip (Python) packages
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- ansible --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall ansible || true \
|
||||||
|
\
|
||||||
|
# -------------------- yamllint --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
|
\
|
||||||
|
# -------------------- yq --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.cache/pip \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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 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 strip --strip-all -p 2>/dev/null || true) \
|
||||||
@@ -356,7 +536,10 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
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}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||||
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"; \
|
||||||
@@ -374,7 +557,7 @@ RUN \
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -390,42 +573,68 @@ RUN set -x \
|
|||||||
&& 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
|
||||||
|
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
# -------------------- Software --------------------
|
||||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
|
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||||
&& mdl --version | grep -E '[.0-9]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||||
&& eslint -v | grep -E '[.0-9]+' \
|
|
||||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& mdlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& gulp --version | grep -E '[.0-9]+' \
|
|
||||||
\
|
|
||||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \
|
|
||||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
||||||
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
||||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
|
&& drupal --version | grep -E 'Drupal Console Launcher\s*[0-9][.0-9]' \
|
||||||
&& git-flow version | grep -E '[.0-9]+' \
|
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||||
&& grunt --version | grep -E '[.0-9]+' \
|
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||||
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[0-9][.0-9]+' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||||
&& phalcon commands | grep -E '[.0-9]+' \
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
|
||||||
&& 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+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& photon --version | grep -E 'Installer [.0-9]+' \
|
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||||
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
|
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||||
&& sass --version | grep -E '[.0-9]+' \
|
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& webpack --version | grep -E '[.0-9]+' \
|
\
|
||||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
# -------------------- Composer --------------------
|
||||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||||
&& true
|
&& 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]+$' \
|
||||||
|
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
||||||
|
\
|
||||||
|
# -------------------- PIP --------------------
|
||||||
|
&& ansible --version | grep -E '^ansible [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]+$' \
|
||||||
|
\
|
||||||
|
# -------------------- 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/.cache/ \
|
||||||
|
&& rm -rf /home/devilbox/.config/ \
|
||||||
|
&& rm -rf /root/.ansible \
|
||||||
|
&& rm -rf /root/.console \
|
||||||
|
&& rm -rf /root/.composer \
|
||||||
|
&& rm -rf /root/.drush \
|
||||||
|
&& rm -rf /root/.pm2 \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -440,7 +649,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
|||||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Volumes
|
### Volumes
|
||||||
###
|
###
|
||||||
@@ -464,4 +672,5 @@ WORKDIR /shared/httpd
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 7.1 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="7.1-work" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="7.1-work"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 7.1-work"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-work"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -23,26 +31,26 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
###
|
###
|
||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
\
|
||||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& echo "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 - \
|
||||||
&& 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 \
|
&& 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 \
|
&& 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 \
|
&& 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 jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
||||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
|
||||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
|
||||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
&& 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 -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 \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
@@ -54,6 +62,7 @@ RUN set -x \
|
|||||||
blackfire-agent \
|
blackfire-agent \
|
||||||
build-essential \
|
build-essential \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
|
certbot \
|
||||||
coreutils \
|
coreutils \
|
||||||
dnsutils \
|
dnsutils \
|
||||||
dos2unix \
|
dos2unix \
|
||||||
@@ -63,7 +72,9 @@ RUN set -x \
|
|||||||
git \
|
git \
|
||||||
git-flow \
|
git-flow \
|
||||||
git-svn \
|
git-svn \
|
||||||
|
ghostscript \
|
||||||
graphviz \
|
graphviz \
|
||||||
|
gsfonts \
|
||||||
hostname \
|
hostname \
|
||||||
htop \
|
htop \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
@@ -71,26 +82,24 @@ RUN set -x \
|
|||||||
jq \
|
jq \
|
||||||
less \
|
less \
|
||||||
libc-dev \
|
libc-dev \
|
||||||
libffi-dev\
|
libffi-dev \
|
||||||
libssl-dev\
|
libssl-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
mongodb-org-shell \
|
||||||
mongodb-org-tools \
|
mongodb-org-tools \
|
||||||
moreutils \
|
moreutils \
|
||||||
mysql-client \
|
mariadb-client \
|
||||||
|
mupdf \
|
||||||
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
net-tools \
|
net-tools \
|
||||||
netcat \
|
netcat \
|
||||||
nodejs \
|
|
||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
postgresql-client \
|
||||||
python-cffi \
|
|
||||||
python-dev \
|
|
||||||
python-pip \
|
|
||||||
python-wheel \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
@@ -106,36 +115,60 @@ RUN set -x \
|
|||||||
w3m \
|
w3m \
|
||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
wkhtmltopdf \
|
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
yarn \
|
||||||
zip \
|
zip \
|
||||||
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& 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/* \
|
||||||
\
|
\
|
||||||
# Get newer pip version
|
|
||||||
&& pip install --upgrade pip \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
RUN set -x \
|
###
|
||||||
# composer
|
### Install custom software
|
||||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
###
|
||||||
# ansible
|
RUN set -eux \
|
||||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
# -------------------- composer --------------------
|
||||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||||
|
&& curl -sS -L --fail https://getcomposer.org/composer-2.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 \
|
||||||
\
|
\
|
||||||
# asgardcms
|
\
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
|
# -------------------- pip --------------------
|
||||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/asgardcms \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libpython-dev \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python \
|
||||||
\
|
\
|
||||||
# awesomeci
|
\
|
||||||
|
# -------------------- nvm --------------------
|
||||||
|
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||||
|
&& cd /opt/nvm \
|
||||||
|
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||||
|
\
|
||||||
|
&& { \
|
||||||
|
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' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -144,91 +177,82 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/awesome-ci \
|
&& rm -rf /usr/local/src/awesome-ci \
|
||||||
\
|
\
|
||||||
&& gem install mixlib-config -v 2.2.4 \
|
\
|
||||||
&& gem install rb-inotify -v 0.9.10 \
|
# -------------------- deployer --------------------
|
||||||
&& gem install mdl \
|
&& curl -sS -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
&& gem install scss_lint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# codeception
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
|
||||||
\
|
|
||||||
# deployer
|
|
||||||
&& curl -sS 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 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||||
&& cd /usr/local/src/drush7 \
|
&& cd /usr/local/src/drush7 \
|
||||||
&& git checkout 7.4.0 \
|
&& git checkout 7.4.0 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||||
&& rm -rf /usr/local/src/drush7/.git \
|
&& rm -rf /usr/local/src/drush7/.git \
|
||||||
&& rm -rf /usr/local/src/drush7/docs \
|
&& rm -rf /usr/local/src/drush7/docs \
|
||||||
&& rm -rf /usr/local/src/drush7/examples \
|
&& rm -rf /usr/local/src/drush7/examples \
|
||||||
&& rm -rf /usr/local/src/drush7/misc \
|
&& rm -rf /usr/local/src/drush7/misc \
|
||||||
\
|
\
|
||||||
# drush8
|
\
|
||||||
|
# -------------------- drush8 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||||
&& cd /usr/local/src/drush8 \
|
&& cd /usr/local/src/drush8 \
|
||||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||||
&& rm -rf /usr/local/src/drush8/.git \
|
&& rm -rf /usr/local/src/drush8/.git \
|
||||||
&& rm -rf /usr/local/src/drush8/docs \
|
&& rm -rf /usr/local/src/drush8/docs \
|
||||||
&& rm -rf /usr/local/src/drush8/examples \
|
&& rm -rf /usr/local/src/drush8/examples \
|
||||||
&& rm -rf /usr/local/src/drush8/misc \
|
&& rm -rf /usr/local/src/drush8/misc \
|
||||||
\
|
\
|
||||||
# drush9
|
\
|
||||||
|
# -------------------- drush9 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
||||||
&& cd /usr/local/src/drush9 \
|
&& cd /usr/local/src/drush9 \
|
||||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && php -d memory_limit=-1 `which composer` install --no-interaction --no-progress' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress' \
|
||||||
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
||||||
&& rm -rf /usr/local/src/drush9/.git \
|
&& rm -rf /usr/local/src/drush9/.git \
|
||||||
&& rm -rf /usr/local/src/drush9/docs \
|
&& rm -rf /usr/local/src/drush9/docs \
|
||||||
&& rm -rf /usr/local/src/drush9/examples \
|
&& rm -rf /usr/local/src/drush9/examples \
|
||||||
&& rm -rf /usr/local/src/drush9/misc \
|
&& rm -rf /usr/local/src/drush9/misc \
|
||||||
\
|
\
|
||||||
# drupalconsole
|
\
|
||||||
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
|
# -------------------- drupalconsole --------------------
|
||||||
|
&& DURL="https://github.com/hechoendrupal/drupal-console-launcher/releases/download/1.9.4/drupal.phar" \
|
||||||
|
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||||
&& chmod +x /usr/local/bin/drupal \
|
&& chmod +x /usr/local/bin/drupal \
|
||||||
# gitflow
|
\
|
||||||
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
\
|
\
|
||||||
# grunt
|
\
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
# -------------------- laravel --------------------
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# laravel
|
|
||||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||||
&& cd /usr/local/src/laravel-installer \
|
&& cd /usr/local/src/laravel-installer \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git tag | grep '^v2\.3\.' | sort -u | tail -1) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
|
&& 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' \
|
||||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
|
||||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||||
\
|
\
|
||||||
# linkcheck
|
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
\
|
||||||
|
# -------------------- linkcheck --------------------
|
||||||
|
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||||
&& chmod +x /usr/local/bin/linkcheck \
|
&& chmod +x /usr/local/bin/linkcheck \
|
||||||
\
|
\
|
||||||
# linuxbrew
|
\
|
||||||
|
# -------------------- linuxbrew --------------------
|
||||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
@@ -239,12 +263,14 @@ RUN set -x \
|
|||||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||||
\
|
\
|
||||||
# mhsendmail
|
\
|
||||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
# -------------------- mhsendmail --------------------
|
||||||
|
&& 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 \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||||
\
|
\
|
||||||
# mysqldumpsecure
|
\
|
||||||
|
# -------------------- mysqldumpsecure --------------------
|
||||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||||
&& cd /usr/local/src/mysqldump-secure \
|
&& cd /usr/local/src/mysqldump-secure \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -266,68 +292,74 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||||
\
|
\
|
||||||
# phalcon
|
\
|
||||||
|
# -------------------- phalcon --------------------
|
||||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||||
&& cd /usr/local/src/phalcon-devtools \
|
&& cd /usr/local/src/phalcon-devtools \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout v3.4.11 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||||
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||||
&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \
|
&& ln -sf /usr/local/src/phalcon-devtools/phalcon /usr/local/bin/phalcon \
|
||||||
|
&& chmod +x /usr/local/bin/phalcon \
|
||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||||
\
|
\
|
||||||
# phpcs
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
# -------------------- phpcs --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
# phpcbf
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
# -------------------- phpcbf --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
# php-cs-fixer
|
\
|
||||||
&& curl -sS -L https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
|
# -------------------- 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 \
|
||||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
# phpunit
|
\
|
||||||
&& curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
# -------------------- phpmd --------------------
|
||||||
|
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpunit --------------------
|
||||||
|
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
# photon
|
\
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
|
# -------------------- symfony --------------------
|
||||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
|
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||||
\
|
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||||
# pm2
|
|
||||||
&& until npm install pm2 -g; do sleep 1; done \
|
|
||||||
# sass
|
|
||||||
&& gem install sass \
|
|
||||||
# symfony
|
|
||||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& chmod +x /usr/local/bin/symfony \
|
||||||
# webpack
|
\
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# wpcli
|
|
||||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
|
||||||
&& chmod +x /usr/local/bin/wp \
|
|
||||||
# yamllint
|
|
||||||
&& 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 libpython-dev python-setuptools libyaml-dev \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
\
|
\
|
||||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
# cleanup
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
|
\
|
||||||
|
# -------------------- cleanup --------------------
|
||||||
&& rm -rf /home/${MY_USER}/.*json \
|
&& rm -rf /home/${MY_USER}/.*json \
|
||||||
&& rm -rf /home/${MY_USER}/.cache \
|
&& rm -rf /home/${MY_USER}/.cache \
|
||||||
&& rm -rf /home/${MY_USER}/.composer \
|
&& rm -rf /home/${MY_USER}/.composer \
|
||||||
&& rm -rf /home/${MY_USER}/.config \
|
&& rm -rf /home/${MY_USER}/.config \
|
||||||
&& rm -rf /home/${MY_USER}/.drush \
|
&& rm -rf /home/${MY_USER}/.drush \
|
||||||
&& rm -rf /home/${MY_USER}/.gem \
|
|
||||||
&& rm -rf /home/${MY_USER}/.npm \
|
|
||||||
&& rm -rf /home/${MY_USER}/.subversion \
|
&& rm -rf /home/${MY_USER}/.subversion \
|
||||||
&& rm -rf /home/${MY_USER}/.v8* \
|
&& rm -rf /home/${MY_USER}/.v8* \
|
||||||
\
|
\
|
||||||
@@ -336,15 +368,162 @@ RUN set -x \
|
|||||||
&& rm -rf /root/.composer \
|
&& rm -rf /root/.composer \
|
||||||
&& rm -rf /root/.config \
|
&& rm -rf /root/.config \
|
||||||
&& rm -rf /root/.drush \
|
&& rm -rf /root/.drush \
|
||||||
&& rm -rf /root/.gem \
|
|
||||||
&& rm -rf /root/.npm \
|
|
||||||
&& rm -rf /root/.subversion \
|
&& rm -rf /root/.subversion \
|
||||||
&& rm -rf /root/.v8* \
|
&& rm -rf /root/.v8* \
|
||||||
\
|
\
|
||||||
&& rm -rf /tmp/* \
|
&& 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 /usr/local/src/composer/cache/* || true) \
|
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Composer (PHP)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- asgardcms --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require asgardcms/asgardcms-installer \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- codeception --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- lumen --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- 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 --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### 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 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& 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 \
|
||||||
|
&& rm -rf /home/devilbox/.npm \
|
||||||
|
&& rm -rf /home/devilbox/.cache \
|
||||||
|
&& rm -rf /home/devilbox/.config \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 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 /root/.gem \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install pip (Python) packages
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- ansible --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall ansible || true \
|
||||||
|
\
|
||||||
|
# -------------------- yamllint --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
|
\
|
||||||
|
# -------------------- yq --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.cache/pip \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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 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 strip --strip-all -p 2>/dev/null || true) \
|
||||||
@@ -356,7 +535,10 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
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}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||||
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"; \
|
||||||
@@ -374,7 +556,7 @@ RUN \
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -390,42 +572,68 @@ RUN set -x \
|
|||||||
&& 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
|
||||||
|
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
# -------------------- Software --------------------
|
||||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
|
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||||
&& mdl --version | grep -E '[.0-9]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||||
&& eslint -v | grep -E '[.0-9]+' \
|
|
||||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& mdlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& gulp --version | grep -E '[.0-9]+' \
|
|
||||||
\
|
|
||||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \
|
|
||||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
||||||
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
||||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
|
&& drupal --version | grep -E 'Drupal Console Launcher\s*[0-9][.0-9]' \
|
||||||
&& git-flow version | grep -E '[.0-9]+' \
|
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||||
&& grunt --version | grep -E '[.0-9]+' \
|
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||||
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[0-9][.0-9]+' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||||
&& phalcon commands | grep -E '[.0-9]+' \
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
|
||||||
&& 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+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& photon --version | grep -E 'Installer [.0-9]+' \
|
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||||
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
|
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||||
&& sass --version | grep -E '[.0-9]+' \
|
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& webpack --version | grep -E '[.0-9]+' \
|
\
|
||||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
# -------------------- Composer --------------------
|
||||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||||
&& true
|
&& 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]+$' \
|
||||||
|
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
||||||
|
\
|
||||||
|
# -------------------- PIP --------------------
|
||||||
|
&& ansible --version | grep -E '^ansible [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]+$' \
|
||||||
|
\
|
||||||
|
# -------------------- 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/.cache/ \
|
||||||
|
&& rm -rf /home/devilbox/.config/ \
|
||||||
|
&& rm -rf /root/.ansible \
|
||||||
|
&& rm -rf /root/.console \
|
||||||
|
&& rm -rf /root/.composer \
|
||||||
|
&& rm -rf /root/.drush \
|
||||||
|
&& rm -rf /root/.pm2 \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -440,7 +648,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
|||||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Volumes
|
### Volumes
|
||||||
###
|
###
|
||||||
@@ -464,4 +671,5 @@ WORKDIR /shared/httpd
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 7.2 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="7.2-work" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="7.2-work"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 7.2-work"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-work"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -23,26 +31,26 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
###
|
###
|
||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
\
|
||||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& echo "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 - \
|
||||||
&& 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 \
|
&& 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 \
|
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
|
||||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
&& 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 jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
||||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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://deb.nodesource.com/node_8.x stretch main" > /etc/apt/sources.list.d/node.list \
|
|
||||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
|
||||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 -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 \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
@@ -54,6 +62,7 @@ RUN set -x \
|
|||||||
blackfire-agent \
|
blackfire-agent \
|
||||||
build-essential \
|
build-essential \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
|
certbot \
|
||||||
coreutils \
|
coreutils \
|
||||||
dnsutils \
|
dnsutils \
|
||||||
dos2unix \
|
dos2unix \
|
||||||
@@ -63,7 +72,9 @@ RUN set -x \
|
|||||||
git \
|
git \
|
||||||
git-flow \
|
git-flow \
|
||||||
git-svn \
|
git-svn \
|
||||||
|
ghostscript \
|
||||||
graphviz \
|
graphviz \
|
||||||
|
gsfonts \
|
||||||
hostname \
|
hostname \
|
||||||
htop \
|
htop \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
@@ -71,26 +82,24 @@ RUN set -x \
|
|||||||
jq \
|
jq \
|
||||||
less \
|
less \
|
||||||
libc-dev \
|
libc-dev \
|
||||||
libffi-dev\
|
libffi-dev \
|
||||||
libssl-dev\
|
libssl-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
mongodb-org-shell \
|
||||||
mongodb-org-tools \
|
mongodb-org-tools \
|
||||||
moreutils \
|
moreutils \
|
||||||
mysql-client \
|
mariadb-client \
|
||||||
|
mupdf \
|
||||||
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
net-tools \
|
net-tools \
|
||||||
netcat \
|
netcat \
|
||||||
nodejs \
|
|
||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
postgresql-client \
|
||||||
python-cffi \
|
|
||||||
python-dev \
|
|
||||||
python-pip \
|
|
||||||
python-wheel \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
@@ -106,36 +115,60 @@ RUN set -x \
|
|||||||
w3m \
|
w3m \
|
||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
wkhtmltopdf \
|
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
yarn \
|
||||||
zip \
|
zip \
|
||||||
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& 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/* \
|
||||||
\
|
\
|
||||||
# Get newer pip version
|
|
||||||
&& pip install --upgrade pip \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
RUN set -x \
|
###
|
||||||
# composer
|
### Install custom software
|
||||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
###
|
||||||
# ansible
|
RUN set -eux \
|
||||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
# -------------------- composer --------------------
|
||||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||||
|
&& curl -sS -L --fail https://getcomposer.org/composer-2.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 \
|
||||||
\
|
\
|
||||||
# asgardcms
|
\
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
|
# -------------------- pip --------------------
|
||||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/asgardcms \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libpython-dev \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python \
|
||||||
\
|
\
|
||||||
# awesomeci
|
\
|
||||||
|
# -------------------- nvm --------------------
|
||||||
|
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||||
|
&& cd /opt/nvm \
|
||||||
|
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||||
|
\
|
||||||
|
&& { \
|
||||||
|
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' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -144,91 +177,82 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/awesome-ci \
|
&& rm -rf /usr/local/src/awesome-ci \
|
||||||
\
|
\
|
||||||
&& gem install mixlib-config -v 2.2.4 \
|
\
|
||||||
&& gem install rb-inotify -v 0.9.10 \
|
# -------------------- deployer --------------------
|
||||||
&& gem install mdl \
|
&& curl -sS -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
&& gem install scss_lint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# codeception
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
|
||||||
\
|
|
||||||
# deployer
|
|
||||||
&& curl -sS 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 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||||
&& cd /usr/local/src/drush7 \
|
&& cd /usr/local/src/drush7 \
|
||||||
&& git checkout 7.4.0 \
|
&& git checkout 7.4.0 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||||
&& rm -rf /usr/local/src/drush7/.git \
|
&& rm -rf /usr/local/src/drush7/.git \
|
||||||
&& rm -rf /usr/local/src/drush7/docs \
|
&& rm -rf /usr/local/src/drush7/docs \
|
||||||
&& rm -rf /usr/local/src/drush7/examples \
|
&& rm -rf /usr/local/src/drush7/examples \
|
||||||
&& rm -rf /usr/local/src/drush7/misc \
|
&& rm -rf /usr/local/src/drush7/misc \
|
||||||
\
|
\
|
||||||
# drush8
|
\
|
||||||
|
# -------------------- drush8 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||||
&& cd /usr/local/src/drush8 \
|
&& cd /usr/local/src/drush8 \
|
||||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||||
&& rm -rf /usr/local/src/drush8/.git \
|
&& rm -rf /usr/local/src/drush8/.git \
|
||||||
&& rm -rf /usr/local/src/drush8/docs \
|
&& rm -rf /usr/local/src/drush8/docs \
|
||||||
&& rm -rf /usr/local/src/drush8/examples \
|
&& rm -rf /usr/local/src/drush8/examples \
|
||||||
&& rm -rf /usr/local/src/drush8/misc \
|
&& rm -rf /usr/local/src/drush8/misc \
|
||||||
\
|
\
|
||||||
# drush9
|
\
|
||||||
|
# -------------------- drush9 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
||||||
&& cd /usr/local/src/drush9 \
|
&& cd /usr/local/src/drush9 \
|
||||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && php -d memory_limit=-1 `which composer` install --no-interaction --no-progress' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress' \
|
||||||
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
||||||
&& rm -rf /usr/local/src/drush9/.git \
|
&& rm -rf /usr/local/src/drush9/.git \
|
||||||
&& rm -rf /usr/local/src/drush9/docs \
|
&& rm -rf /usr/local/src/drush9/docs \
|
||||||
&& rm -rf /usr/local/src/drush9/examples \
|
&& rm -rf /usr/local/src/drush9/examples \
|
||||||
&& rm -rf /usr/local/src/drush9/misc \
|
&& rm -rf /usr/local/src/drush9/misc \
|
||||||
\
|
\
|
||||||
# drupalconsole
|
\
|
||||||
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
|
# -------------------- drupalconsole --------------------
|
||||||
|
&& DURL="https://github.com$(curl -sS 'https://github.com/hechoendrupal/drupal-console-launcher/releases' | grep -Eo 'href="/.+drupal.phar"' | head -1 | sed 's/^href="//g' | sed 's/"$//g')" \
|
||||||
|
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||||
&& chmod +x /usr/local/bin/drupal \
|
&& chmod +x /usr/local/bin/drupal \
|
||||||
# gitflow
|
\
|
||||||
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
\
|
\
|
||||||
# grunt
|
\
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
# -------------------- laravel --------------------
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# laravel
|
|
||||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||||
&& cd /usr/local/src/laravel-installer \
|
&& cd /usr/local/src/laravel-installer \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout v4.0.0 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
|
&& 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' \
|
||||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
|
||||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||||
\
|
\
|
||||||
# linkcheck
|
&& ln -s /usr/local/src/laravel-installer/bin/laravel /usr/local/bin/laravel \
|
||||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
\
|
||||||
|
# -------------------- linkcheck --------------------
|
||||||
|
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||||
&& chmod +x /usr/local/bin/linkcheck \
|
&& chmod +x /usr/local/bin/linkcheck \
|
||||||
\
|
\
|
||||||
# linuxbrew
|
\
|
||||||
|
# -------------------- linuxbrew --------------------
|
||||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
@@ -239,12 +263,14 @@ RUN set -x \
|
|||||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||||
\
|
\
|
||||||
# mhsendmail
|
\
|
||||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
# -------------------- mhsendmail --------------------
|
||||||
|
&& 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 \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||||
\
|
\
|
||||||
# mysqldumpsecure
|
\
|
||||||
|
# -------------------- mysqldumpsecure --------------------
|
||||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||||
&& cd /usr/local/src/mysqldump-secure \
|
&& cd /usr/local/src/mysqldump-secure \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -266,68 +292,75 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||||
\
|
\
|
||||||
# phalcon
|
\
|
||||||
|
# -------------------- phalcon --------------------
|
||||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||||
&& cd /usr/local/src/phalcon-devtools \
|
&& cd /usr/local/src/phalcon-devtools \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& 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 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||||
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||||
&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \
|
&& ln -sf /usr/local/src/phalcon-devtools/phalcon /usr/local/bin/phalcon \
|
||||||
|
&& chmod +x phalcon \
|
||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||||
\
|
\
|
||||||
# phpcs
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
# -------------------- phpcs --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
# phpcbf
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
# -------------------- phpcbf --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
# php-cs-fixer
|
\
|
||||||
&& curl -sS -L https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
|
# -------------------- 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 \
|
||||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
# phpunit
|
\
|
||||||
&& curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
# -------------------- phpmd --------------------
|
||||||
|
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpunit --------------------
|
||||||
|
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
# photon
|
\
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
|
# -------------------- symfony --------------------
|
||||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
|
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||||
\
|
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||||
# pm2
|
|
||||||
&& until npm install pm2 -g; do sleep 1; done \
|
|
||||||
# sass
|
|
||||||
&& gem install sass \
|
|
||||||
# symfony
|
|
||||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& chmod +x /usr/local/bin/symfony \
|
||||||
# webpack
|
\
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# wpcli
|
|
||||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
|
||||||
&& chmod +x /usr/local/bin/wp \
|
|
||||||
# yamllint
|
|
||||||
&& 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 libpython-dev python-setuptools libyaml-dev \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
\
|
\
|
||||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
# cleanup
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
|
\
|
||||||
|
# -------------------- cleanup --------------------
|
||||||
&& rm -rf /home/${MY_USER}/.*json \
|
&& rm -rf /home/${MY_USER}/.*json \
|
||||||
&& rm -rf /home/${MY_USER}/.cache \
|
&& rm -rf /home/${MY_USER}/.cache \
|
||||||
&& rm -rf /home/${MY_USER}/.composer \
|
&& rm -rf /home/${MY_USER}/.composer \
|
||||||
&& rm -rf /home/${MY_USER}/.config \
|
&& rm -rf /home/${MY_USER}/.config \
|
||||||
&& rm -rf /home/${MY_USER}/.drush \
|
&& rm -rf /home/${MY_USER}/.drush \
|
||||||
&& rm -rf /home/${MY_USER}/.gem \
|
|
||||||
&& rm -rf /home/${MY_USER}/.npm \
|
|
||||||
&& rm -rf /home/${MY_USER}/.subversion \
|
&& rm -rf /home/${MY_USER}/.subversion \
|
||||||
&& rm -rf /home/${MY_USER}/.v8* \
|
&& rm -rf /home/${MY_USER}/.v8* \
|
||||||
\
|
\
|
||||||
@@ -336,15 +369,162 @@ RUN set -x \
|
|||||||
&& rm -rf /root/.composer \
|
&& rm -rf /root/.composer \
|
||||||
&& rm -rf /root/.config \
|
&& rm -rf /root/.config \
|
||||||
&& rm -rf /root/.drush \
|
&& rm -rf /root/.drush \
|
||||||
&& rm -rf /root/.gem \
|
|
||||||
&& rm -rf /root/.npm \
|
|
||||||
&& rm -rf /root/.subversion \
|
&& rm -rf /root/.subversion \
|
||||||
&& rm -rf /root/.v8* \
|
&& rm -rf /root/.v8* \
|
||||||
\
|
\
|
||||||
&& rm -rf /tmp/* \
|
&& 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 /usr/local/src/composer/cache/* || true) \
|
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Composer (PHP)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- asgardcms --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require asgardcms/asgardcms-installer \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- codeception --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- lumen --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- 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 --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### 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 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& 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 \
|
||||||
|
&& rm -rf /home/devilbox/.npm \
|
||||||
|
&& rm -rf /home/devilbox/.cache \
|
||||||
|
&& rm -rf /home/devilbox/.config \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 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 /root/.gem \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install pip (Python) packages
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- ansible --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall ansible || true \
|
||||||
|
\
|
||||||
|
# -------------------- yamllint --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
|
\
|
||||||
|
# -------------------- yq --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.cache/pip \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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 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 strip --strip-all -p 2>/dev/null || true) \
|
||||||
@@ -356,7 +536,10 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
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}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||||
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"; \
|
||||||
@@ -374,7 +557,7 @@ RUN \
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -390,42 +573,68 @@ RUN set -x \
|
|||||||
&& 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
|
||||||
|
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
# -------------------- Software --------------------
|
||||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
|
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||||
&& mdl --version | grep -E '[.0-9]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||||
&& eslint -v | grep -E '[.0-9]+' \
|
|
||||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& mdlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& gulp --version | grep -E '[.0-9]+' \
|
|
||||||
\
|
|
||||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \
|
|
||||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
||||||
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
||||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
|
&& drupal --version | grep -E 'Drupal Console Launcher\s*[0-9][.0-9]' \
|
||||||
&& git-flow version | grep -E '[.0-9]+' \
|
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||||
&& grunt --version | grep -E '[.0-9]+' \
|
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||||
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[0-9][.0-9]+' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||||
&& phalcon commands | grep -E '[.0-9]+' \
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
|
||||||
&& 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+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& photon --version | grep -E 'Installer [.0-9]+' \
|
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||||
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
|
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||||
&& sass --version | grep -E '[.0-9]+' \
|
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& webpack --version | grep -E '[.0-9]+' \
|
\
|
||||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
# -------------------- Composer --------------------
|
||||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||||
&& true
|
&& 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]+$' \
|
||||||
|
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
||||||
|
\
|
||||||
|
# -------------------- PIP --------------------
|
||||||
|
&& ansible --version | grep -E '^ansible [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]+$' \
|
||||||
|
\
|
||||||
|
# -------------------- 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/.cache/ \
|
||||||
|
&& rm -rf /home/devilbox/.config/ \
|
||||||
|
&& rm -rf /root/.ansible \
|
||||||
|
&& rm -rf /root/.console \
|
||||||
|
&& rm -rf /root/.composer \
|
||||||
|
&& rm -rf /root/.drush \
|
||||||
|
&& rm -rf /root/.pm2 \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -440,7 +649,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
|||||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Volumes
|
### Volumes
|
||||||
###
|
###
|
||||||
@@ -464,4 +672,5 @@ WORKDIR /shared/httpd
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 7.3 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="7.3-work" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="7.3-work"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 7.3-work"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-work"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -23,26 +31,26 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
###
|
###
|
||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
\
|
||||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& echo "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 - \
|
||||||
&& 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 \
|
&& 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 \
|
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
|
||||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
&& 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 jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
||||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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://deb.nodesource.com/node_8.x stretch main" > /etc/apt/sources.list.d/node.list \
|
|
||||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
|
||||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 -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 \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
@@ -54,6 +62,7 @@ RUN set -x \
|
|||||||
blackfire-agent \
|
blackfire-agent \
|
||||||
build-essential \
|
build-essential \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
|
certbot \
|
||||||
coreutils \
|
coreutils \
|
||||||
dnsutils \
|
dnsutils \
|
||||||
dos2unix \
|
dos2unix \
|
||||||
@@ -63,7 +72,9 @@ RUN set -x \
|
|||||||
git \
|
git \
|
||||||
git-flow \
|
git-flow \
|
||||||
git-svn \
|
git-svn \
|
||||||
|
ghostscript \
|
||||||
graphviz \
|
graphviz \
|
||||||
|
gsfonts \
|
||||||
hostname \
|
hostname \
|
||||||
htop \
|
htop \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
@@ -71,26 +82,24 @@ RUN set -x \
|
|||||||
jq \
|
jq \
|
||||||
less \
|
less \
|
||||||
libc-dev \
|
libc-dev \
|
||||||
libffi-dev\
|
libffi-dev \
|
||||||
libssl-dev\
|
libssl-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
mongodb-org-shell \
|
||||||
mongodb-org-tools \
|
mongodb-org-tools \
|
||||||
moreutils \
|
moreutils \
|
||||||
mysql-client \
|
mariadb-client \
|
||||||
|
mupdf \
|
||||||
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
net-tools \
|
net-tools \
|
||||||
netcat \
|
netcat \
|
||||||
nodejs \
|
|
||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
postgresql-client \
|
||||||
python-cffi \
|
|
||||||
python-dev \
|
|
||||||
python-pip \
|
|
||||||
python-wheel \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
@@ -106,36 +115,60 @@ RUN set -x \
|
|||||||
w3m \
|
w3m \
|
||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
wkhtmltopdf \
|
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
yarn \
|
||||||
zip \
|
zip \
|
||||||
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& 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/* \
|
||||||
\
|
\
|
||||||
# Get newer pip version
|
|
||||||
&& pip install --upgrade pip \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
RUN set -x \
|
###
|
||||||
# composer
|
### Install custom software
|
||||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
###
|
||||||
# ansible
|
RUN set -eux \
|
||||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
# -------------------- composer --------------------
|
||||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||||
|
&& curl -sS -L --fail https://getcomposer.org/composer-2.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 \
|
||||||
\
|
\
|
||||||
# asgardcms
|
\
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
|
# -------------------- pip --------------------
|
||||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/asgardcms \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libpython-dev \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python \
|
||||||
\
|
\
|
||||||
# awesomeci
|
\
|
||||||
|
# -------------------- nvm --------------------
|
||||||
|
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||||
|
&& cd /opt/nvm \
|
||||||
|
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||||
|
\
|
||||||
|
&& { \
|
||||||
|
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' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -144,91 +177,82 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/awesome-ci \
|
&& rm -rf /usr/local/src/awesome-ci \
|
||||||
\
|
\
|
||||||
&& gem install mixlib-config -v 2.2.4 \
|
\
|
||||||
&& gem install rb-inotify -v 0.9.10 \
|
# -------------------- deployer --------------------
|
||||||
&& gem install mdl \
|
&& curl -sS -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
&& gem install scss_lint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# codeception
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
|
||||||
\
|
|
||||||
# deployer
|
|
||||||
&& curl -sS 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 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||||
&& cd /usr/local/src/drush7 \
|
&& cd /usr/local/src/drush7 \
|
||||||
&& git checkout 7.4.0 \
|
&& git checkout 7.4.0 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||||
&& rm -rf /usr/local/src/drush7/.git \
|
&& rm -rf /usr/local/src/drush7/.git \
|
||||||
&& rm -rf /usr/local/src/drush7/docs \
|
&& rm -rf /usr/local/src/drush7/docs \
|
||||||
&& rm -rf /usr/local/src/drush7/examples \
|
&& rm -rf /usr/local/src/drush7/examples \
|
||||||
&& rm -rf /usr/local/src/drush7/misc \
|
&& rm -rf /usr/local/src/drush7/misc \
|
||||||
\
|
\
|
||||||
# drush8
|
\
|
||||||
|
# -------------------- drush8 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||||
&& cd /usr/local/src/drush8 \
|
&& cd /usr/local/src/drush8 \
|
||||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||||
&& rm -rf /usr/local/src/drush8/.git \
|
&& rm -rf /usr/local/src/drush8/.git \
|
||||||
&& rm -rf /usr/local/src/drush8/docs \
|
&& rm -rf /usr/local/src/drush8/docs \
|
||||||
&& rm -rf /usr/local/src/drush8/examples \
|
&& rm -rf /usr/local/src/drush8/examples \
|
||||||
&& rm -rf /usr/local/src/drush8/misc \
|
&& rm -rf /usr/local/src/drush8/misc \
|
||||||
\
|
\
|
||||||
# drush9
|
\
|
||||||
|
# -------------------- drush9 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
||||||
&& cd /usr/local/src/drush9 \
|
&& cd /usr/local/src/drush9 \
|
||||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && php -d memory_limit=-1 `which composer` install --no-interaction --no-progress' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress' \
|
||||||
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
||||||
&& rm -rf /usr/local/src/drush9/.git \
|
&& rm -rf /usr/local/src/drush9/.git \
|
||||||
&& rm -rf /usr/local/src/drush9/docs \
|
&& rm -rf /usr/local/src/drush9/docs \
|
||||||
&& rm -rf /usr/local/src/drush9/examples \
|
&& rm -rf /usr/local/src/drush9/examples \
|
||||||
&& rm -rf /usr/local/src/drush9/misc \
|
&& rm -rf /usr/local/src/drush9/misc \
|
||||||
\
|
\
|
||||||
# drupalconsole
|
\
|
||||||
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
|
# -------------------- drupalconsole --------------------
|
||||||
|
&& DURL="https://github.com$(curl -sS 'https://github.com/hechoendrupal/drupal-console-launcher/releases' | grep -Eo 'href="/.+drupal.phar"' | head -1 | sed 's/^href="//g' | sed 's/"$//g')" \
|
||||||
|
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||||
&& chmod +x /usr/local/bin/drupal \
|
&& chmod +x /usr/local/bin/drupal \
|
||||||
# gitflow
|
\
|
||||||
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
\
|
\
|
||||||
# grunt
|
\
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
# -------------------- laravel --------------------
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# laravel
|
|
||||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||||
&& cd /usr/local/src/laravel-installer \
|
&& cd /usr/local/src/laravel-installer \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
|
&& 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' \
|
||||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
|
||||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||||
\
|
\
|
||||||
# linkcheck
|
&& ln -s /usr/local/src/laravel-installer/bin/laravel /usr/local/bin/laravel \
|
||||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
\
|
||||||
|
# -------------------- linkcheck --------------------
|
||||||
|
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||||
&& chmod +x /usr/local/bin/linkcheck \
|
&& chmod +x /usr/local/bin/linkcheck \
|
||||||
\
|
\
|
||||||
# linuxbrew
|
\
|
||||||
|
# -------------------- linuxbrew --------------------
|
||||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
@@ -239,12 +263,14 @@ RUN set -x \
|
|||||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||||
\
|
\
|
||||||
# mhsendmail
|
\
|
||||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
# -------------------- mhsendmail --------------------
|
||||||
|
&& 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 \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||||
\
|
\
|
||||||
# mysqldumpsecure
|
\
|
||||||
|
# -------------------- mysqldumpsecure --------------------
|
||||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||||
&& cd /usr/local/src/mysqldump-secure \
|
&& cd /usr/local/src/mysqldump-secure \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -266,57 +292,75 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||||
\
|
\
|
||||||
# phpcs
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
# -------------------- phalcon --------------------
|
||||||
|
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||||
|
&& cd /usr/local/src/phalcon-devtools \
|
||||||
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
|
&& COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install \
|
||||||
|
\
|
||||||
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||||
|
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||||
|
&& ln -sf /usr/local/src/phalcon-devtools/phalcon /usr/local/bin/phalcon \
|
||||||
|
&& chmod +x phalcon \
|
||||||
|
&& cd / \
|
||||||
|
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpcs --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
# phpcbf
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
# -------------------- phpcbf --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
# php-cs-fixer
|
\
|
||||||
&& curl -sS -L https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
|
# -------------------- 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 \
|
||||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
# phpunit
|
\
|
||||||
&& curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
# -------------------- phpmd --------------------
|
||||||
|
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpunit --------------------
|
||||||
|
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
# photon
|
\
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
|
# -------------------- symfony --------------------
|
||||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
|
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||||
\
|
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||||
# pm2
|
|
||||||
&& until npm install pm2 -g; do sleep 1; done \
|
|
||||||
# sass
|
|
||||||
&& gem install sass \
|
|
||||||
# symfony
|
|
||||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& chmod +x /usr/local/bin/symfony \
|
||||||
# webpack
|
\
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# wpcli
|
|
||||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
|
||||||
&& chmod +x /usr/local/bin/wp \
|
|
||||||
# yamllint
|
|
||||||
&& 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 libpython-dev python-setuptools libyaml-dev \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
\
|
\
|
||||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
# cleanup
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
|
\
|
||||||
|
# -------------------- cleanup --------------------
|
||||||
&& rm -rf /home/${MY_USER}/.*json \
|
&& rm -rf /home/${MY_USER}/.*json \
|
||||||
&& rm -rf /home/${MY_USER}/.cache \
|
&& rm -rf /home/${MY_USER}/.cache \
|
||||||
&& rm -rf /home/${MY_USER}/.composer \
|
&& rm -rf /home/${MY_USER}/.composer \
|
||||||
&& rm -rf /home/${MY_USER}/.config \
|
&& rm -rf /home/${MY_USER}/.config \
|
||||||
&& rm -rf /home/${MY_USER}/.drush \
|
&& rm -rf /home/${MY_USER}/.drush \
|
||||||
&& rm -rf /home/${MY_USER}/.gem \
|
|
||||||
&& rm -rf /home/${MY_USER}/.npm \
|
|
||||||
&& rm -rf /home/${MY_USER}/.subversion \
|
&& rm -rf /home/${MY_USER}/.subversion \
|
||||||
&& rm -rf /home/${MY_USER}/.v8* \
|
&& rm -rf /home/${MY_USER}/.v8* \
|
||||||
\
|
\
|
||||||
@@ -325,15 +369,162 @@ RUN set -x \
|
|||||||
&& rm -rf /root/.composer \
|
&& rm -rf /root/.composer \
|
||||||
&& rm -rf /root/.config \
|
&& rm -rf /root/.config \
|
||||||
&& rm -rf /root/.drush \
|
&& rm -rf /root/.drush \
|
||||||
&& rm -rf /root/.gem \
|
|
||||||
&& rm -rf /root/.npm \
|
|
||||||
&& rm -rf /root/.subversion \
|
&& rm -rf /root/.subversion \
|
||||||
&& rm -rf /root/.v8* \
|
&& rm -rf /root/.v8* \
|
||||||
\
|
\
|
||||||
&& rm -rf /tmp/* \
|
&& 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 /usr/local/src/composer/cache/* || true) \
|
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Composer (PHP)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- asgardcms --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require asgardcms/asgardcms-installer \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- codeception --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- lumen --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- 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 --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### 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 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& 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 \
|
||||||
|
&& rm -rf /home/devilbox/.npm \
|
||||||
|
&& rm -rf /home/devilbox/.cache \
|
||||||
|
&& rm -rf /home/devilbox/.config \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 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 /root/.gem \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install pip (Python) packages
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- ansible --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall ansible || true \
|
||||||
|
\
|
||||||
|
# -------------------- yamllint --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
|
\
|
||||||
|
# -------------------- yq --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.cache/pip \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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 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 strip --strip-all -p 2>/dev/null || true) \
|
||||||
@@ -345,7 +536,10 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
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}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||||
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"; \
|
||||||
@@ -363,7 +557,7 @@ RUN \
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -379,41 +573,68 @@ RUN set -x \
|
|||||||
&& 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
|
||||||
|
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
# -------------------- Software --------------------
|
||||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
|
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||||
&& mdl --version | grep -E '[.0-9]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||||
&& eslint -v | grep -E '[.0-9]+' \
|
|
||||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& mdlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& gulp --version | grep -E '[.0-9]+' \
|
|
||||||
\
|
|
||||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \
|
|
||||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
||||||
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
||||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
|
&& drupal --version | grep -E 'Drupal Console Launcher\s*[0-9][.0-9]' \
|
||||||
&& git-flow version | grep -E '[.0-9]+' \
|
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||||
&& grunt --version | grep -E '[.0-9]+' \
|
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||||
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[0-9][.0-9]+' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcbf --version | grep -E 'version [.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+' \
|
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& photon --version | grep -E 'Installer [.0-9]+' \
|
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||||
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
|
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||||
&& sass --version | grep -E '[.0-9]+' \
|
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& webpack --version | grep -E '[.0-9]+' \
|
\
|
||||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
# -------------------- Composer --------------------
|
||||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||||
&& true
|
&& 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]+$' \
|
||||||
|
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
||||||
|
\
|
||||||
|
# -------------------- PIP --------------------
|
||||||
|
&& ansible --version | grep -E '^ansible [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]+$' \
|
||||||
|
\
|
||||||
|
# -------------------- 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/.cache/ \
|
||||||
|
&& rm -rf /home/devilbox/.config/ \
|
||||||
|
&& rm -rf /root/.ansible \
|
||||||
|
&& rm -rf /root/.console \
|
||||||
|
&& rm -rf /root/.composer \
|
||||||
|
&& rm -rf /root/.drush \
|
||||||
|
&& rm -rf /root/.pm2 \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -428,7 +649,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
|||||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Volumes
|
### Volumes
|
||||||
###
|
###
|
||||||
@@ -452,4 +672,5 @@ WORKDIR /shared/httpd
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 7.4 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="7.4-work" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="7.4-work"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 7.4-work"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-work"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -23,26 +31,26 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
###
|
###
|
||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
\
|
||||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& echo "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 - \
|
||||||
&& 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 \
|
&& 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 \
|
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
|
||||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
&& 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 jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
||||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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://deb.nodesource.com/node_8.x stretch main" > /etc/apt/sources.list.d/node.list \
|
|
||||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
|
||||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 -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 \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
@@ -54,6 +62,7 @@ RUN set -x \
|
|||||||
blackfire-agent \
|
blackfire-agent \
|
||||||
build-essential \
|
build-essential \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
|
certbot \
|
||||||
coreutils \
|
coreutils \
|
||||||
dnsutils \
|
dnsutils \
|
||||||
dos2unix \
|
dos2unix \
|
||||||
@@ -63,7 +72,9 @@ RUN set -x \
|
|||||||
git \
|
git \
|
||||||
git-flow \
|
git-flow \
|
||||||
git-svn \
|
git-svn \
|
||||||
|
ghostscript \
|
||||||
graphviz \
|
graphviz \
|
||||||
|
gsfonts \
|
||||||
hostname \
|
hostname \
|
||||||
htop \
|
htop \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
@@ -71,26 +82,24 @@ RUN set -x \
|
|||||||
jq \
|
jq \
|
||||||
less \
|
less \
|
||||||
libc-dev \
|
libc-dev \
|
||||||
libffi-dev\
|
libffi-dev \
|
||||||
libssl-dev\
|
libssl-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
mongodb-org-shell \
|
||||||
mongodb-org-tools \
|
mongodb-org-tools \
|
||||||
moreutils \
|
moreutils \
|
||||||
mysql-client \
|
mariadb-client \
|
||||||
|
mupdf \
|
||||||
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
net-tools \
|
net-tools \
|
||||||
netcat \
|
netcat \
|
||||||
nodejs \
|
|
||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
postgresql-client \
|
||||||
python-cffi \
|
|
||||||
python-dev \
|
|
||||||
python-pip \
|
|
||||||
python-wheel \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
@@ -106,36 +115,60 @@ RUN set -x \
|
|||||||
w3m \
|
w3m \
|
||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
wkhtmltopdf \
|
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
yarn \
|
||||||
zip \
|
zip \
|
||||||
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& 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/* \
|
||||||
\
|
\
|
||||||
# Get newer pip version
|
|
||||||
&& pip install --upgrade pip \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
RUN set -x \
|
###
|
||||||
# composer
|
### Install custom software
|
||||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
###
|
||||||
# ansible
|
RUN set -eux \
|
||||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
# -------------------- composer --------------------
|
||||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||||
|
&& curl -sS -L --fail https://getcomposer.org/composer-2.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 \
|
||||||
\
|
\
|
||||||
# asgardcms
|
\
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
|
# -------------------- pip --------------------
|
||||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/asgardcms \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libpython-dev \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python \
|
||||||
\
|
\
|
||||||
# awesomeci
|
\
|
||||||
|
# -------------------- nvm --------------------
|
||||||
|
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||||
|
&& cd /opt/nvm \
|
||||||
|
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||||
|
\
|
||||||
|
&& { \
|
||||||
|
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' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -144,91 +177,82 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/awesome-ci \
|
&& rm -rf /usr/local/src/awesome-ci \
|
||||||
\
|
\
|
||||||
&& gem install mixlib-config -v 2.2.4 \
|
\
|
||||||
&& gem install rb-inotify -v 0.9.10 \
|
# -------------------- deployer --------------------
|
||||||
&& gem install mdl \
|
&& curl -sS -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
&& gem install scss_lint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# codeception
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
|
||||||
\
|
|
||||||
# deployer
|
|
||||||
&& curl -sS 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 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||||
&& cd /usr/local/src/drush7 \
|
&& cd /usr/local/src/drush7 \
|
||||||
&& git checkout 7.4.0 \
|
&& git checkout 7.4.0 \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||||
&& rm -rf /usr/local/src/drush7/.git \
|
&& rm -rf /usr/local/src/drush7/.git \
|
||||||
&& rm -rf /usr/local/src/drush7/docs \
|
&& rm -rf /usr/local/src/drush7/docs \
|
||||||
&& rm -rf /usr/local/src/drush7/examples \
|
&& rm -rf /usr/local/src/drush7/examples \
|
||||||
&& rm -rf /usr/local/src/drush7/misc \
|
&& rm -rf /usr/local/src/drush7/misc \
|
||||||
\
|
\
|
||||||
# drush8
|
\
|
||||||
|
# -------------------- drush8 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||||
&& cd /usr/local/src/drush8 \
|
&& cd /usr/local/src/drush8 \
|
||||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||||
&& rm -rf /usr/local/src/drush8/.git \
|
&& rm -rf /usr/local/src/drush8/.git \
|
||||||
&& rm -rf /usr/local/src/drush8/docs \
|
&& rm -rf /usr/local/src/drush8/docs \
|
||||||
&& rm -rf /usr/local/src/drush8/examples \
|
&& rm -rf /usr/local/src/drush8/examples \
|
||||||
&& rm -rf /usr/local/src/drush8/misc \
|
&& rm -rf /usr/local/src/drush8/misc \
|
||||||
\
|
\
|
||||||
# drush9
|
\
|
||||||
|
# -------------------- drush9 --------------------
|
||||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
||||||
&& cd /usr/local/src/drush9 \
|
&& cd /usr/local/src/drush9 \
|
||||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && php -d memory_limit=-1 `which composer` install --no-interaction --no-progress' \
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress' \
|
||||||
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
||||||
&& rm -rf /usr/local/src/drush9/.git \
|
&& rm -rf /usr/local/src/drush9/.git \
|
||||||
&& rm -rf /usr/local/src/drush9/docs \
|
&& rm -rf /usr/local/src/drush9/docs \
|
||||||
&& rm -rf /usr/local/src/drush9/examples \
|
&& rm -rf /usr/local/src/drush9/examples \
|
||||||
&& rm -rf /usr/local/src/drush9/misc \
|
&& rm -rf /usr/local/src/drush9/misc \
|
||||||
\
|
\
|
||||||
# drupalconsole
|
\
|
||||||
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
|
# -------------------- drupalconsole --------------------
|
||||||
|
&& DURL="https://github.com$(curl -sS 'https://github.com/hechoendrupal/drupal-console-launcher/releases' | grep -Eo 'href="/.+drupal.phar"' | head -1 | sed 's/^href="//g' | sed 's/"$//g')" \
|
||||||
|
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||||
&& chmod +x /usr/local/bin/drupal \
|
&& chmod +x /usr/local/bin/drupal \
|
||||||
# gitflow
|
\
|
||||||
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
\
|
\
|
||||||
# grunt
|
\
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
# -------------------- laravel --------------------
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# laravel
|
|
||||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||||
&& cd /usr/local/src/laravel-installer \
|
&& cd /usr/local/src/laravel-installer \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
\
|
\
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
|
&& 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' \
|
||||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
|
||||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||||
\
|
\
|
||||||
# linkcheck
|
&& ln -s /usr/local/src/laravel-installer/bin/laravel /usr/local/bin/laravel \
|
||||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
\
|
||||||
|
# -------------------- linkcheck --------------------
|
||||||
|
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||||
&& chmod +x /usr/local/bin/linkcheck \
|
&& chmod +x /usr/local/bin/linkcheck \
|
||||||
\
|
\
|
||||||
# linuxbrew
|
\
|
||||||
|
# -------------------- linuxbrew --------------------
|
||||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
@@ -239,12 +263,14 @@ RUN set -x \
|
|||||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||||
\
|
\
|
||||||
# mhsendmail
|
\
|
||||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
# -------------------- mhsendmail --------------------
|
||||||
|
&& 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 \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||||
\
|
\
|
||||||
# mysqldumpsecure
|
\
|
||||||
|
# -------------------- mysqldumpsecure --------------------
|
||||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||||
&& cd /usr/local/src/mysqldump-secure \
|
&& cd /usr/local/src/mysqldump-secure \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -266,53 +292,70 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||||
\
|
\
|
||||||
# phpcs
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
# -------------------- phalcon --------------------
|
||||||
|
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||||
|
&& cd /usr/local/src/phalcon-devtools \
|
||||||
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
|
&& COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install \
|
||||||
|
\
|
||||||
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||||
|
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||||
|
&& ln -sf /usr/local/src/phalcon-devtools/phalcon /usr/local/bin/phalcon \
|
||||||
|
&& chmod +x phalcon \
|
||||||
|
&& cd / \
|
||||||
|
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpcs --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
# phpcbf
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
# -------------------- phpcbf --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
# phpunit
|
\
|
||||||
&& curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
# -------------------- phpmd --------------------
|
||||||
|
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpunit --------------------
|
||||||
|
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
# photon
|
\
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
|
# -------------------- symfony --------------------
|
||||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
|
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||||
\
|
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||||
# pm2
|
|
||||||
&& until npm install pm2 -g; do sleep 1; done \
|
|
||||||
# sass
|
|
||||||
&& gem install sass \
|
|
||||||
# symfony
|
|
||||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& chmod +x /usr/local/bin/symfony \
|
||||||
# webpack
|
\
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# wpcli
|
|
||||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
|
||||||
&& chmod +x /usr/local/bin/wp \
|
|
||||||
# yamllint
|
|
||||||
&& 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 libpython-dev python-setuptools libyaml-dev \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
\
|
\
|
||||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
# cleanup
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
|
\
|
||||||
|
# -------------------- cleanup --------------------
|
||||||
&& rm -rf /home/${MY_USER}/.*json \
|
&& rm -rf /home/${MY_USER}/.*json \
|
||||||
&& rm -rf /home/${MY_USER}/.cache \
|
&& rm -rf /home/${MY_USER}/.cache \
|
||||||
&& rm -rf /home/${MY_USER}/.composer \
|
&& rm -rf /home/${MY_USER}/.composer \
|
||||||
&& rm -rf /home/${MY_USER}/.config \
|
&& rm -rf /home/${MY_USER}/.config \
|
||||||
&& rm -rf /home/${MY_USER}/.drush \
|
&& rm -rf /home/${MY_USER}/.drush \
|
||||||
&& rm -rf /home/${MY_USER}/.gem \
|
|
||||||
&& rm -rf /home/${MY_USER}/.npm \
|
|
||||||
&& rm -rf /home/${MY_USER}/.subversion \
|
&& rm -rf /home/${MY_USER}/.subversion \
|
||||||
&& rm -rf /home/${MY_USER}/.v8* \
|
&& rm -rf /home/${MY_USER}/.v8* \
|
||||||
\
|
\
|
||||||
@@ -321,15 +364,162 @@ RUN set -x \
|
|||||||
&& rm -rf /root/.composer \
|
&& rm -rf /root/.composer \
|
||||||
&& rm -rf /root/.config \
|
&& rm -rf /root/.config \
|
||||||
&& rm -rf /root/.drush \
|
&& rm -rf /root/.drush \
|
||||||
&& rm -rf /root/.gem \
|
|
||||||
&& rm -rf /root/.npm \
|
|
||||||
&& rm -rf /root/.subversion \
|
&& rm -rf /root/.subversion \
|
||||||
&& rm -rf /root/.v8* \
|
&& rm -rf /root/.v8* \
|
||||||
\
|
\
|
||||||
&& rm -rf /tmp/* \
|
&& 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 /usr/local/src/composer/cache/* || true) \
|
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Composer (PHP)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- asgardcms --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require asgardcms/asgardcms-installer \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- codeception --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- lumen --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||||
|
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
# -------------------- 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 --------------------
|
||||||
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### 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 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& 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 \
|
||||||
|
&& rm -rf /home/devilbox/.npm \
|
||||||
|
&& rm -rf /home/devilbox/.cache \
|
||||||
|
&& rm -rf /home/devilbox/.config \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 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 /root/.gem \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install pip (Python) packages
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- ansible --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall ansible || true \
|
||||||
|
\
|
||||||
|
# -------------------- yamllint --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
|
\
|
||||||
|
# -------------------- yq --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.cache/pip \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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 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 strip --strip-all -p 2>/dev/null || true) \
|
||||||
@@ -341,7 +531,10 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
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}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||||
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"; \
|
||||||
@@ -359,7 +552,7 @@ RUN \
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -375,40 +568,67 @@ RUN set -x \
|
|||||||
&& 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
|
||||||
|
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
# -------------------- Software --------------------
|
||||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
|
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||||
&& mdl --version | grep -E '[.0-9]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||||
&& eslint -v | grep -E '[.0-9]+' \
|
|
||||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& mdlint --version | grep -E '[.0-9]+' \
|
|
||||||
&& gulp --version | grep -E '[.0-9]+' \
|
|
||||||
\
|
|
||||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \
|
|
||||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
||||||
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
||||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
|
&& drupal --version | grep -E 'Drupal Console Launcher\s*[0-9][.0-9]' \
|
||||||
&& git-flow version | grep -E '[.0-9]+' \
|
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||||
&& grunt --version | grep -E '[.0-9]+' \
|
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||||
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[0-9][.0-9]+' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& photon --version | grep -E 'Installer [.0-9]+' \
|
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||||
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
|
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||||
&& sass --version | grep -E '[.0-9]+' \
|
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& webpack --version | grep -E '[.0-9]+' \
|
\
|
||||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
# -------------------- Composer --------------------
|
||||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||||
&& true
|
&& 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]+$' \
|
||||||
|
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
||||||
|
\
|
||||||
|
# -------------------- PIP --------------------
|
||||||
|
&& ansible --version | grep -E '^ansible [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]+$' \
|
||||||
|
\
|
||||||
|
# -------------------- 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/.cache/ \
|
||||||
|
&& rm -rf /home/devilbox/.config/ \
|
||||||
|
&& rm -rf /root/.ansible \
|
||||||
|
&& rm -rf /root/.console \
|
||||||
|
&& rm -rf /root/.composer \
|
||||||
|
&& rm -rf /root/.drush \
|
||||||
|
&& rm -rf /root/.pm2 \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -423,7 +643,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
|||||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Volumes
|
### Volumes
|
||||||
###
|
###
|
||||||
@@ -447,4 +666,5 @@ WORKDIR /shared/httpd
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM 8.0 Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="8.0-work" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="8.0-work"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-work"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-work"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -23,26 +31,26 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
###
|
###
|
||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
\
|
||||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& echo "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 - \
|
||||||
&& 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 \
|
&& 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 \
|
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
|
||||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
&& 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 jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
||||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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://deb.nodesource.com/node_8.x stretch main" > /etc/apt/sources.list.d/node.list \
|
|
||||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
|
||||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 -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 \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
@@ -54,6 +62,7 @@ RUN set -x \
|
|||||||
blackfire-agent \
|
blackfire-agent \
|
||||||
build-essential \
|
build-essential \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
|
certbot \
|
||||||
coreutils \
|
coreutils \
|
||||||
dnsutils \
|
dnsutils \
|
||||||
dos2unix \
|
dos2unix \
|
||||||
@@ -63,7 +72,9 @@ RUN set -x \
|
|||||||
git \
|
git \
|
||||||
git-flow \
|
git-flow \
|
||||||
git-svn \
|
git-svn \
|
||||||
|
ghostscript \
|
||||||
graphviz \
|
graphviz \
|
||||||
|
gsfonts \
|
||||||
hostname \
|
hostname \
|
||||||
htop \
|
htop \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
@@ -71,26 +82,24 @@ RUN set -x \
|
|||||||
jq \
|
jq \
|
||||||
less \
|
less \
|
||||||
libc-dev \
|
libc-dev \
|
||||||
libffi-dev\
|
libffi-dev \
|
||||||
libssl-dev\
|
libssl-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
mongodb-org-shell \
|
||||||
mongodb-org-tools \
|
mongodb-org-tools \
|
||||||
moreutils \
|
moreutils \
|
||||||
mysql-client \
|
mariadb-client \
|
||||||
|
mupdf \
|
||||||
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
net-tools \
|
net-tools \
|
||||||
netcat \
|
netcat \
|
||||||
nodejs \
|
|
||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
postgresql-client \
|
||||||
python-cffi \
|
|
||||||
python-dev \
|
|
||||||
python-pip \
|
|
||||||
python-wheel \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
@@ -106,32 +115,60 @@ RUN set -x \
|
|||||||
w3m \
|
w3m \
|
||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
wkhtmltopdf \
|
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
yarn \
|
||||||
zip \
|
zip \
|
||||||
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& 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/* \
|
||||||
\
|
\
|
||||||
# Get newer pip version
|
|
||||||
&& pip install --upgrade pip \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
RUN set -x \
|
###
|
||||||
# composer
|
### Install custom software
|
||||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
###
|
||||||
# ansible
|
RUN set -eux \
|
||||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
# -------------------- composer --------------------
|
||||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||||
|
&& curl -sS -L --fail https://getcomposer.org/composer-2.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 \
|
||||||
\
|
\
|
||||||
# awesomeci
|
\
|
||||||
|
# -------------------- pip --------------------
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libpython-dev \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- nvm --------------------
|
||||||
|
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||||
|
&& cd /opt/nvm \
|
||||||
|
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||||
|
\
|
||||||
|
&& { \
|
||||||
|
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' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -140,38 +177,24 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/awesome-ci \
|
&& rm -rf /usr/local/src/awesome-ci \
|
||||||
\
|
\
|
||||||
&& gem install mixlib-config -v 2.2.4 \
|
\
|
||||||
&& gem install rb-inotify -v 0.9.10 \
|
# -------------------- deployer --------------------
|
||||||
&& gem install mdl \
|
&& curl -sS -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
&& gem install scss_lint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# deployer
|
|
||||||
&& curl -sS https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
|
||||||
&& chmod +x /usr/local/bin/dep \
|
&& chmod +x /usr/local/bin/dep \
|
||||||
# drupalconsole
|
\
|
||||||
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
|
# -------------------- gitflow --------------------
|
||||||
&& chmod +x /usr/local/bin/drupal \
|
|
||||||
# gitflow
|
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
\
|
\
|
||||||
# grunt
|
\
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
# -------------------- linkcheck --------------------
|
||||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# linkcheck
|
|
||||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
|
||||||
&& chmod +x /usr/local/bin/linkcheck \
|
&& chmod +x /usr/local/bin/linkcheck \
|
||||||
\
|
\
|
||||||
# linuxbrew
|
\
|
||||||
|
# -------------------- linuxbrew --------------------
|
||||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
@@ -182,12 +205,14 @@ RUN set -x \
|
|||||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||||
\
|
\
|
||||||
# mhsendmail
|
\
|
||||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
# -------------------- mhsendmail --------------------
|
||||||
|
&& 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 \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||||
\
|
\
|
||||||
# mysqldumpsecure
|
\
|
||||||
|
# -------------------- mysqldumpsecure --------------------
|
||||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||||
&& cd /usr/local/src/mysqldump-secure \
|
&& cd /usr/local/src/mysqldump-secure \
|
||||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
@@ -209,45 +234,51 @@ RUN set -x \
|
|||||||
&& cd / \
|
&& cd / \
|
||||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||||
\
|
\
|
||||||
# phpcs
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
# -------------------- phpcs --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
# phpcbf
|
\
|
||||||
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
# -------------------- phpcbf --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
# pm2
|
\
|
||||||
&& until npm install pm2 -g; do sleep 1; done \
|
# -------------------- phpmd --------------------
|
||||||
# sass
|
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
&& gem install sass \
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
# symfony
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
\
|
||||||
|
\
|
||||||
|
# -------------------- symfony --------------------
|
||||||
|
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||||
|
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& chmod +x /usr/local/bin/symfony \
|
||||||
# webpack
|
\
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||||
&& rm -rf /tmp/y \
|
|
||||||
\
|
|
||||||
# wpcli
|
|
||||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
|
||||||
&& chmod +x /usr/local/bin/wp \
|
|
||||||
# yamllint
|
|
||||||
&& 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 libpython-dev python-setuptools libyaml-dev \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
\
|
\
|
||||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
# cleanup
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
|
\
|
||||||
|
# -------------------- cleanup --------------------
|
||||||
&& rm -rf /home/${MY_USER}/.*json \
|
&& rm -rf /home/${MY_USER}/.*json \
|
||||||
&& rm -rf /home/${MY_USER}/.cache \
|
&& rm -rf /home/${MY_USER}/.cache \
|
||||||
&& rm -rf /home/${MY_USER}/.composer \
|
&& rm -rf /home/${MY_USER}/.composer \
|
||||||
&& rm -rf /home/${MY_USER}/.config \
|
&& rm -rf /home/${MY_USER}/.config \
|
||||||
&& rm -rf /home/${MY_USER}/.drush \
|
&& rm -rf /home/${MY_USER}/.drush \
|
||||||
&& rm -rf /home/${MY_USER}/.gem \
|
|
||||||
&& rm -rf /home/${MY_USER}/.npm \
|
|
||||||
&& rm -rf /home/${MY_USER}/.subversion \
|
&& rm -rf /home/${MY_USER}/.subversion \
|
||||||
&& rm -rf /home/${MY_USER}/.v8* \
|
&& rm -rf /home/${MY_USER}/.v8* \
|
||||||
\
|
\
|
||||||
@@ -256,15 +287,143 @@ RUN set -x \
|
|||||||
&& rm -rf /root/.composer \
|
&& rm -rf /root/.composer \
|
||||||
&& rm -rf /root/.config \
|
&& rm -rf /root/.config \
|
||||||
&& rm -rf /root/.drush \
|
&& rm -rf /root/.drush \
|
||||||
&& rm -rf /root/.gem \
|
|
||||||
&& rm -rf /root/.npm \
|
|
||||||
&& rm -rf /root/.subversion \
|
&& rm -rf /root/.subversion \
|
||||||
&& rm -rf /root/.v8* \
|
&& rm -rf /root/.v8* \
|
||||||
\
|
\
|
||||||
&& rm -rf /tmp/* \
|
&& 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 /usr/local/src/composer/cache/* || true) \
|
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Composer (PHP)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
\
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### 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 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& 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 \
|
||||||
|
&& rm -rf /home/devilbox/.npm \
|
||||||
|
&& rm -rf /home/devilbox/.cache \
|
||||||
|
&& rm -rf /home/devilbox/.config \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 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 /root/.gem \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install pip (Python) packages
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- ansible --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall ansible || true \
|
||||||
|
\
|
||||||
|
# -------------------- yamllint --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
|
\
|
||||||
|
# -------------------- yq --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.cache/pip \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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 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 strip --strip-all -p 2>/dev/null || true) \
|
||||||
@@ -276,7 +435,10 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
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}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||||
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"; \
|
||||||
@@ -294,7 +456,7 @@ RUN \
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.0' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.0' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -310,32 +472,56 @@ RUN set -x \
|
|||||||
&& 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
|
||||||
|
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
# -------------------- Software --------------------
|
||||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||||
&& mdl --version | grep -E '[.0-9]+' \
|
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+' \
|
||||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& eslint -v | grep -E '[.0-9]+' \
|
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||||
&& mdlint --version | grep -E '[.0-9]+' \
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
&& gulp --version | grep -E '[.0-9]+' \
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[0-9][.0-9]+' \
|
||||||
\
|
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
|
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& git-flow version | grep -E '[.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& grunt --version | grep -E '[.0-9]+' \
|
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
\
|
||||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
# -------------------- Composer --------------------
|
||||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
\
|
||||||
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
|
# -------------------- PIP --------------------
|
||||||
&& sass --version | grep -E '[.0-9]+' \
|
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
||||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||||
&& webpack --version | grep -E '[.0-9]+' \
|
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
\
|
||||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
# -------------------- NPM --------------------
|
||||||
&& true
|
&& 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/.cache/ \
|
||||||
|
&& rm -rf /home/devilbox/.config/ \
|
||||||
|
&& rm -rf /root/.ansible \
|
||||||
|
&& rm -rf /root/.console \
|
||||||
|
&& rm -rf /root/.composer \
|
||||||
|
&& rm -rf /root/.drush \
|
||||||
|
&& rm -rf /root/.pm2 \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -350,7 +536,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
|||||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Volumes
|
### Volumes
|
||||||
###
|
###
|
||||||
@@ -374,4 +559,5 @@ WORKDIR /shared/httpd
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
563
Dockerfiles/work/Dockerfile-8.1
Normal file
563
Dockerfiles/work/Dockerfile-8.1
Normal file
@@ -0,0 +1,563 @@
|
|||||||
|
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||||
|
FROM devilbox/php-fpm:8.1-prod
|
||||||
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Labels
|
||||||
|
###
|
||||||
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="8.1-work"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 8.1-work"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-work"
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Envs
|
||||||
|
###
|
||||||
|
ENV BASH_PROFILE=".bashrc"
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Tools
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
curl \
|
||||||
|
dirmngr \
|
||||||
|
gnupg \
|
||||||
|
\
|
||||||
|
&& 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 - \
|
||||||
|
&& 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 install -qq -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 \
|
||||||
|
mongodb-org-shell \
|
||||||
|
mongodb-org-tools \
|
||||||
|
moreutils \
|
||||||
|
mariadb-client \
|
||||||
|
mupdf \
|
||||||
|
mupdf-tools \
|
||||||
|
nano \
|
||||||
|
net-tools \
|
||||||
|
netcat \
|
||||||
|
openssh-client \
|
||||||
|
patch \
|
||||||
|
patchelf \
|
||||||
|
postgresql-client \
|
||||||
|
redis-tools \
|
||||||
|
rsync \
|
||||||
|
rubygems \
|
||||||
|
ruby-dev \
|
||||||
|
shellcheck \
|
||||||
|
silversearcher-ag \
|
||||||
|
subversion \
|
||||||
|
sudo \
|
||||||
|
tig \
|
||||||
|
tree \
|
||||||
|
unzip \
|
||||||
|
vim \
|
||||||
|
w3m \
|
||||||
|
wget \
|
||||||
|
whois \
|
||||||
|
xz-utils \
|
||||||
|
yarn \
|
||||||
|
zip \
|
||||||
|
zlib1g-dev \
|
||||||
|
zsh \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install custom software
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- composer --------------------
|
||||||
|
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||||
|
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
||||||
|
&& chmod +x /usr/local/bin/composer-1 \
|
||||||
|
&& chmod +x /usr/local/bin/composer-2 \
|
||||||
|
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- pip --------------------
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libpython-dev \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- nvm --------------------
|
||||||
|
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
||||||
|
&& cd /opt/nvm \
|
||||||
|
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||||
|
\
|
||||||
|
&& { \
|
||||||
|
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' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- 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 -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
|
&& chmod +x /usr/local/bin/dep \
|
||||||
|
\
|
||||||
|
# -------------------- gitflow --------------------
|
||||||
|
&& git clone git://github.com/petervanderdoes/gitflow.git /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 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- linuxbrew --------------------
|
||||||
|
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||||
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||||
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
|
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||||
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
|
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
|
||||||
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
|
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||||
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- mhsendmail --------------------
|
||||||
|
&& 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 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- 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 2>/dev/null \
|
||||||
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpcbf --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||||
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpmd --------------------
|
||||||
|
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- symfony --------------------
|
||||||
|
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||||
|
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
||||||
|
&& chmod +x /usr/local/bin/symfony \
|
||||||
|
\
|
||||||
|
# -------------------- wkhtmltopdf --------------------
|
||||||
|
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
|
\
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- 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 \
|
||||||
|
\
|
||||||
|
# -------------------- 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 /usr/local/src/composer/cache/* || true) \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Composer (PHP)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
\
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### 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 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& 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 \
|
||||||
|
&& rm -rf /home/devilbox/.npm \
|
||||||
|
&& rm -rf /home/devilbox/.cache \
|
||||||
|
&& rm -rf /home/devilbox/.config \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 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 /root/.gem \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install pip (Python) packages
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- ansible --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall ansible || true \
|
||||||
|
\
|
||||||
|
# -------------------- yamllint --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
|
\
|
||||||
|
# -------------------- yq --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& rm -rf /root/.cache/pip \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Configure Bash
|
||||||
|
###
|
||||||
|
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}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||||
|
echo "export PATH"; \
|
||||||
|
echo ". /etc/bash-devilbox"; \
|
||||||
|
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||||
|
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||||
|
echo " if [ -r \"\${f}\" ]; then"; \
|
||||||
|
echo " . \"\${f}\""; \
|
||||||
|
echo " fi"; \
|
||||||
|
echo " done"; \
|
||||||
|
echo " unset f"; \
|
||||||
|
echo "fi"; \
|
||||||
|
} | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \
|
||||||
|
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE}
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Verify
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.1' \
|
||||||
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
|
\
|
||||||
|
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||||
|
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||||
|
\
|
||||||
|
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||||
|
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||||
|
&& rm -f /usr/local/etc/php/php.ini
|
||||||
|
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- Software --------------------
|
||||||
|
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | 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]+' \
|
||||||
|
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||||
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\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]+' \
|
||||||
|
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
|
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||||
|
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
||||||
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
|
\
|
||||||
|
# -------------------- Composer --------------------
|
||||||
|
\
|
||||||
|
# -------------------- PIP --------------------
|
||||||
|
&& ansible --version | grep -E '^ansible [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]+$' \
|
||||||
|
\
|
||||||
|
# -------------------- 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/.cache/ \
|
||||||
|
&& rm -rf /home/devilbox/.config/ \
|
||||||
|
&& rm -rf /root/.ansible \
|
||||||
|
&& rm -rf /root/.console \
|
||||||
|
&& rm -rf /root/.composer \
|
||||||
|
&& rm -rf /root/.drush \
|
||||||
|
&& rm -rf /root/.pm2 \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Copy files
|
||||||
|
###
|
||||||
|
COPY ./data/php-ini.d/php-8.1.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||||
|
COPY ./data/php-fpm.conf/php-fpm-8.1.conf /usr/local/etc/php-fpm.conf
|
||||||
|
|
||||||
|
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||||
|
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||||
|
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||||
|
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Volumes
|
||||||
|
###
|
||||||
|
VOLUME /shared/backups
|
||||||
|
VOLUME /var/log/php
|
||||||
|
VOLUME /var/mail
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Ports
|
||||||
|
###
|
||||||
|
EXPOSE 9000
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Where to start inside the container
|
||||||
|
###
|
||||||
|
WORKDIR /shared/httpd
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Entrypoint
|
||||||
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
@@ -55,7 +55,7 @@ set_mds_settings() {
|
|||||||
else
|
else
|
||||||
mds_pass_val="$( env_get "${mds_pass_var}" )"
|
mds_pass_val="$( env_get "${mds_pass_var}" )"
|
||||||
log "info" "\$${mds_pass_var} set for mysqldump-secure. Changing to '******'" "${debug}"
|
log "info" "\$${mds_pass_var} set for mysqldump-secure. Changing to '******'" "${debug}"
|
||||||
run "sed -i'' 's/^password.*/password = ${mds_pass_val}/g' ${mds_cnf}" "${debug}"
|
run "perl -pi -e 's/^password.*/password = ${mds_pass_val}/g' ${mds_cnf}" "${debug}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# MySQL host
|
# MySQL host
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
set -u
|
set -u
|
||||||
set -p pipefail
|
set -o pipefail
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -24,9 +24,6 @@ DVL_PHP_INI_DIR="/usr/local/etc/php/conf.d"
|
|||||||
# php-fpm conf.d directory
|
# php-fpm conf.d directory
|
||||||
DVL_PHP_FPM_DIR="/usr/local/etc/php-fpm.d"
|
DVL_PHP_FPM_DIR="/usr/local/etc/php-fpm.d"
|
||||||
|
|
||||||
# This is the log file for any mail related functions
|
|
||||||
DVL_PHP_MAIL_LOG="/var/log/mail.log"
|
|
||||||
|
|
||||||
# This file holds error and access log definitions
|
# This file holds error and access log definitions
|
||||||
DVL_PHP_FPM_CONF_LOGFILE="${DVL_PHP_FPM_DIR}/zzz-entrypoint-logfiles.conf"
|
DVL_PHP_FPM_CONF_LOGFILE="${DVL_PHP_FPM_DIR}/zzz-entrypoint-logfiles.conf"
|
||||||
DVL_PHP_INI_CONF_LOGFILE="${DVL_PHP_INI_DIR}/zzz-entrypoint-logfiles.ini"
|
DVL_PHP_INI_CONF_LOGFILE="${DVL_PHP_INI_DIR}/zzz-entrypoint-logfiles.ini"
|
||||||
@@ -34,6 +31,9 @@ DVL_PHP_INI_CONF_LOGFILE="${DVL_PHP_INI_DIR}/zzz-entrypoint-logfiles.ini"
|
|||||||
# PHP-FPM log dir
|
# PHP-FPM log dir
|
||||||
DVL_FPM_LOG_DIR="/var/log/php"
|
DVL_FPM_LOG_DIR="/var/log/php"
|
||||||
|
|
||||||
|
# This is the log file for any mail related functions
|
||||||
|
DVL_PHP_MAIL_LOG="${DVL_FPM_LOG_DIR}/mail.log"
|
||||||
|
|
||||||
# Custom ini dir (to be copied to actual ini dir)
|
# Custom ini dir (to be copied to actual ini dir)
|
||||||
DVL_PHP_CUST_INI_DIR="/etc/php-custom.d"
|
DVL_PHP_CUST_INI_DIR="/etc/php-custom.d"
|
||||||
|
|
||||||
@@ -138,7 +138,7 @@ done
|
|||||||
###
|
###
|
||||||
### Supervisor: rsyslogd & postfix
|
### Supervisor: rsyslogd & postfix
|
||||||
###
|
###
|
||||||
if [ "$( env_get "ENABLE_MAIL" )" = "1" ]; then
|
if [ "$( env_get "ENABLE_MAIL" )" = "1" ] || [ "$( env_get "ENABLE_MAIL" )" = "2" ]; then
|
||||||
supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${DVL_SUPERVISOR_CONFD}" "${DEBUG_LEVEL}" "1"
|
supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${DVL_SUPERVISOR_CONFD}" "${DEBUG_LEVEL}" "1"
|
||||||
supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${DVL_SUPERVISOR_CONFD}" "${DEBUG_LEVEL}"
|
supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${DVL_SUPERVISOR_CONFD}" "${DEBUG_LEVEL}"
|
||||||
fi
|
fi
|
||||||
@@ -217,4 +217,4 @@ execute_custom_scripts "/startup.2.d" "${DEBUG_LEVEL}"
|
|||||||
### Startup
|
### Startup
|
||||||
###
|
###
|
||||||
log "info" "Starting supervisord" "${DEBUG_LEVEL}"
|
log "info" "Starting supervisord" "${DEBUG_LEVEL}"
|
||||||
exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
|
exec "${@}"
|
||||||
|
|||||||
134
Dockerfiles/work/data/php-fpm.conf/php-fpm-8.1.conf
Normal file
134
Dockerfiles/work/data/php-fpm.conf/php-fpm-8.1.conf
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
; ################################################################################
|
||||||
|
; ####
|
||||||
|
; #### The following settings can be overwritten by later includes
|
||||||
|
; ####
|
||||||
|
; ################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; Timeouts
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
[www]
|
||||||
|
; The timeout for serving a single request after which the worker process will be killed.
|
||||||
|
; This option should be used when the 'max_execution_time' ini option does not stop script
|
||||||
|
; execution for some reason.
|
||||||
|
request_terminate_timeout = 120s
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; Logging
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
[global]
|
||||||
|
error_log = /proc/self/fd/2
|
||||||
|
log_level = notice
|
||||||
|
|
||||||
|
[www]
|
||||||
|
; if we send this to /proc/self/fd/1, it never appears
|
||||||
|
access.log = /proc/self/fd/2
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; Backlog configuration
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
[www]
|
||||||
|
; A maximum of backlog incoming connections will be queued for processing.
|
||||||
|
; If a connection request arrives with the queue full the client may receive an error with an
|
||||||
|
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
|
||||||
|
; the request may be ignored so that retries may succeed.
|
||||||
|
|
||||||
|
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
|
||||||
|
; are silently truncated
|
||||||
|
listen.backlog = 1024
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; Worker configuration
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
[www]
|
||||||
|
; static - the number of child processes is fixed (pm.max_children).
|
||||||
|
;
|
||||||
|
; dynamic - the number of child processes is set dynamically based on the following directives:
|
||||||
|
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
|
||||||
|
;
|
||||||
|
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
|
||||||
|
; pm.start_servers are started when the service is started.
|
||||||
|
pm = ondemand
|
||||||
|
|
||||||
|
; The maximum number of child processes to be created
|
||||||
|
pm.max_children = 50
|
||||||
|
|
||||||
|
; The number of child processes created on startup. Used only when pm is set to dynamic.
|
||||||
|
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
|
||||||
|
pm.start_servers = 4
|
||||||
|
|
||||||
|
; The desired minimum number of idle server processes.
|
||||||
|
pm.min_spare_servers = 2
|
||||||
|
|
||||||
|
; The desired maximum number of idle server processes.
|
||||||
|
pm.max_spare_servers = 6
|
||||||
|
|
||||||
|
; The number of requests each child process should execute before respawning.
|
||||||
|
; This can be useful to work around memory leaks in 3rd party libraries.
|
||||||
|
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
|
||||||
|
; Default value: 0.
|
||||||
|
pm.max_requests = 500
|
||||||
|
|
||||||
|
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
|
||||||
|
pm.process_idle_timeout = 10s
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; Include
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
|
||||||
|
[global]
|
||||||
|
include = /usr/local/etc/php-fpm.d/*.conf
|
||||||
|
|
||||||
|
|
||||||
|
; ################################################################################
|
||||||
|
; ####
|
||||||
|
; #### The following settings overwrite any includes again
|
||||||
|
; ####
|
||||||
|
; ################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; Required for Dockerization
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
[global]
|
||||||
|
daemonize = no
|
||||||
|
|
||||||
|
[www]
|
||||||
|
; Keep env variables set by docker
|
||||||
|
clear_env = no
|
||||||
|
|
||||||
|
; Redirect worker stdout and stderr into main error log. If not set, stdout and
|
||||||
|
; stderr will be redirected to /dev/null according to FastCGI specs.
|
||||||
|
; Note: on highloaded environement, this can cause some delay in the page
|
||||||
|
; process time (several ms).
|
||||||
|
; Default Value: no
|
||||||
|
catch_workers_output = yes
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; User and Group
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
[www]
|
||||||
|
user = devilbox
|
||||||
|
group = devilbox
|
||||||
|
|
||||||
|
|
||||||
|
; ############################################################
|
||||||
|
; Networking
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
[www]
|
||||||
|
; Ensure to listen here
|
||||||
|
listen = 9000
|
||||||
49
Dockerfiles/work/data/php-ini.d/php-8.1.ini
Normal file
49
Dockerfiles/work/data/php-ini.d/php-8.1.ini
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
; ############################################################
|
||||||
|
; # Devilbox PHP defaults for 8.1-work
|
||||||
|
; ############################################################
|
||||||
|
|
||||||
|
; Each PHP flavour (base, mods, prod, work) might have its own php.ini.
|
||||||
|
; If none is present, the one from the previous flavour is inherited.
|
||||||
|
|
||||||
|
|
||||||
|
[PHP]
|
||||||
|
|
||||||
|
; Memory
|
||||||
|
; Note: "memory_limit" should be larger than "post_max_size"
|
||||||
|
memory_limit = 512M
|
||||||
|
|
||||||
|
|
||||||
|
; Timeouts
|
||||||
|
max_execution_time = 120
|
||||||
|
max_input_time = 120
|
||||||
|
|
||||||
|
|
||||||
|
; Uploads
|
||||||
|
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||||
|
post_max_size = 72M
|
||||||
|
upload_max_filesize = 64M
|
||||||
|
max_file_uploads = 20
|
||||||
|
|
||||||
|
|
||||||
|
; Vars
|
||||||
|
variables_order = EGPCS
|
||||||
|
max_input_vars = 8000
|
||||||
|
max_input_nesting_level = 64
|
||||||
|
|
||||||
|
|
||||||
|
; Error reporting
|
||||||
|
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||||
|
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
|
||||||
|
xmlrpc_errors = Off
|
||||||
|
report_memleaks = On
|
||||||
|
display_errors = On
|
||||||
|
display_startup_errors = On
|
||||||
|
log_errors = On
|
||||||
|
html_errors = On
|
||||||
|
|
||||||
|
|
||||||
|
; Xdebug settings
|
||||||
|
xdebug.default_enable = Off
|
||||||
|
xdebug.profiler_enable = Off
|
||||||
|
xdebug.remote_enable = Off
|
||||||
|
xdebug.remote_autostart = Off
|
||||||
@@ -4,4 +4,3 @@ Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/loca
|
|||||||
|
|
||||||
# Allow devilbox user to do anything without password
|
# Allow devilbox user to do anything without password
|
||||||
%devilbox ALL=(ALL) NOPASSWD: ALL
|
%devilbox ALL=(ALL) NOPASSWD: ALL
|
||||||
|
|
||||||
|
|||||||
880
Makefile
880
Makefile
@@ -1,497 +1,415 @@
|
|||||||
location = Dockerfiles/
|
ifneq (,)
|
||||||
|
.error This Makefile requires GNU Make.
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Docker configuration
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
CURRENT_DIR = $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
||||||
|
|
||||||
|
DIR = Dockerfiles
|
||||||
|
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
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
###
|
|
||||||
### Default
|
|
||||||
###
|
|
||||||
help:
|
help:
|
||||||
@printf "################################################################################\n"
|
@echo
|
||||||
@printf "# devilbox/php:XX-XX Makefile\n"
|
@echo " _ _ _ _ __ _ ___ "
|
||||||
@printf "################################################################################\n\n"
|
@echo " _| |___ _ _<_| | |_ _____ / ___| |_ ___ ___| | ___._ _ _ "
|
||||||
@printf "%s\n\n" "Generate and build devilbox PHP-FPM docker images"
|
@echo " / . / ._| | | | | . / . \ \// | . | . | . |___| || . | ' ' |"
|
||||||
@printf "%s\n" "make generate: Generate Dockerfiles (requires Ansible)"
|
@echo " \___\___|__/|_|_|___\___/\_/_/| _|_|_| _/ |_|| _|_|_|_|"
|
||||||
@printf "%s\n" "make readme: Update Readme with php modules (requires images to be built)"
|
@echo " |_| |_| |_| "
|
||||||
@printf "\n"
|
@echo
|
||||||
@printf "%s\n" "make gen-build: Generate and build all images"
|
@echo
|
||||||
@printf "%s\n" "make gen-rebuild: Generate and rebuild all images"
|
@echo "Targets"
|
||||||
@printf "\n"
|
@echo "--------------------------------------------------------------------------------"
|
||||||
@printf "%s\n" "make build-all: Build all images"
|
@echo
|
||||||
@printf "%s\n" "make rebuild-all: Rebuild all images"
|
@echo "lint Lint project files and repository"
|
||||||
@printf "\n"
|
@echo
|
||||||
@printf "%s\n" "make build-base: Build all base images"
|
@echo "gen-readme [VERSION=] Update README with PHP modules from built images."
|
||||||
@printf "%s\n" "make build-mods: Build all mods images"
|
@echo "gen-dockerfiles [FAIL_FAST=] Generate Dockerfiles from templates."
|
||||||
@printf "%s\n" "make build-prod: Build all prod images"
|
@echo
|
||||||
@printf "%s\n" "make build-work: Build all work images"
|
@echo "build-base VERSION= [ARGS=] Build base image by specified version"
|
||||||
@printf "\n"
|
@echo "build-mods VERSION= [ARGS=] Build mods image by specified version"
|
||||||
@printf "%s\n" "make rebuild-base: Rebuild all base images"
|
@echo "build-prod VERSION= [ARGS=] Build prod image by specified version"
|
||||||
@printf "%s\n" "make rebuild-mods: Rebuild all mods images"
|
@echo "build-work VERSION= [ARGS=] Build work image by specified version"
|
||||||
@printf "%s\n" "make rebuild-prod: Rebuild all prod images"
|
@echo
|
||||||
@printf "%s\n" "make rebuild-work: Rebuild all work images"
|
@echo "rebuild-base VERSION= [ARGS=] Rebuild base image by specified version"
|
||||||
@printf "\n"
|
@echo "rebuild-mods VERSION= [ARGS=] Rebuild mods image by specified version"
|
||||||
@printf "%s\n" "make build-base-52: Build PHP 5.2 base image"
|
@echo "rebuild-prod VERSION= [ARGS=] Rebuild prod image by specified version"
|
||||||
@printf "%s\n" "make build-base-53: Build PHP 5.3 base image"
|
@echo "rebuild-work VERSION= [ARGS=] Rebuild work image by specified version"
|
||||||
@printf "%s\n" "make build-base-54: Build PHP 5.4 base image"
|
@echo
|
||||||
@printf "%s\n" "make build-base-55: Build PHP 5.5 base image"
|
@echo "test-base VERSION= Test base image by specified version"
|
||||||
@printf "%s\n" "make build-base-56: Build PHP 5.6 base image"
|
@echo "test-mods VERSION= Test mods image by specified version"
|
||||||
@printf "%s\n" "make build-base-70: Build PHP 7.0 base image"
|
@echo "test-prod VERSION= Test prod image by specified version"
|
||||||
@printf "%s\n" "make build-base-71: Build PHP 7.1 base image"
|
@echo "test-work VERSION= Test work image by specified version"
|
||||||
@printf "%s\n" "make build-base-72: Build PHP 7.2 base image"
|
@echo
|
||||||
@printf "%s\n" "make build-base-73: Build PHP 7.3 base image"
|
@echo
|
||||||
@printf "%s\n" "make build-base-74: Build PHP 7.4 base image"
|
@echo "Variables"
|
||||||
@printf "%s\n" "make build-base-80: Build PHP 8.0 base image"
|
@echo "--------------------------------------------------------------------------------"
|
||||||
@printf "\n"
|
@echo
|
||||||
@printf "%s\n" "make build-mods-52: Build PHP 5.2 mods image"
|
@echo "VERSION One of '5.2', '5.3', '5.4', '5.5', '5.6', '7.0',"
|
||||||
@printf "%s\n" "make build-mods-53: Build PHP 5.3 mods image"
|
@echo " '7.1', '7.2', '7.3', '7.4', '8.0', '8.1'."
|
||||||
@printf "%s\n" "make build-mods-54: Build PHP 5.4 mods image"
|
@echo " For gen-readme target it is optional and if not"
|
||||||
@printf "%s\n" "make build-mods-55: Build PHP 5.5 mods image"
|
@echo " specified, it will generate for all versions."
|
||||||
@printf "%s\n" "make build-mods-56: Build PHP 5.6 mods image"
|
@echo
|
||||||
@printf "%s\n" "make build-mods-70: Build PHP 7.0 mods image"
|
@echo "FAIL_FAST Either 'True' or 'False' (defaults to 'False')."
|
||||||
@printf "%s\n" "make build-mods-71: Build PHP 7.1 mods image"
|
@echo " If set to 'True', each module install has an"
|
||||||
@printf "%s\n" "make build-mods-72: Build PHP 7.2 mods image"
|
@echo " immediate check, which is very slow for CI, but"
|
||||||
@printf "%s\n" "make build-mods-73: Build PHP 7.3 mods image"
|
@echo " yields errors immediately."
|
||||||
@printf "%s\n" "make build-mods-74: Build PHP 7.4 mods image"
|
@echo " If set to 'False', checks are done at the end."
|
||||||
@printf "%s\n" "make build-mods-80: Build PHP 8.0 mods image"
|
@echo
|
||||||
@printf "\n"
|
@echo "ARGS Can be added to all build-* and rebuild-* targets"
|
||||||
@printf "%s\n" "make build-prod-52: Build PHP 5.2 prod image"
|
@echo " to supply additional docker build options."
|
||||||
@printf "%s\n" "make build-prod-53: Build PHP 5.3 prod image"
|
|
||||||
@printf "%s\n" "make build-prod-54: Build PHP 5.4 prod image"
|
|
||||||
@printf "%s\n" "make build-prod-55: Build PHP 5.5 prod image"
|
|
||||||
@printf "%s\n" "make build-prod-56: Build PHP 5.6 prod image"
|
|
||||||
@printf "%s\n" "make build-prod-70: Build PHP 7.0 prod image"
|
|
||||||
@printf "%s\n" "make build-prod-71: Build PHP 7.1 prod image"
|
|
||||||
@printf "%s\n" "make build-prod-72: Build PHP 7.2 prod image"
|
|
||||||
@printf "%s\n" "make build-prod-73: Build PHP 7.3 prod image"
|
|
||||||
@printf "%s\n" "make build-prod-74: Build PHP 7.4 prod image"
|
|
||||||
@printf "%s\n" "make build-prod-80: Build PHP 8.0 prod image"
|
|
||||||
@printf "\n"
|
|
||||||
@printf "%s\n" "make build-work-52: Build PHP 5.2 work image"
|
|
||||||
@printf "%s\n" "make build-work-53: Build PHP 5.3 work image"
|
|
||||||
@printf "%s\n" "make build-work-54: Build PHP 5.4 work image"
|
|
||||||
@printf "%s\n" "make build-work-55: Build PHP 5.5 work image"
|
|
||||||
@printf "%s\n" "make build-work-56: Build PHP 5.6 work image"
|
|
||||||
@printf "%s\n" "make build-work-70: Build PHP 7.0 work image"
|
|
||||||
@printf "%s\n" "make build-work-71: Build PHP 7.1 work image"
|
|
||||||
@printf "%s\n" "make build-work-72: Build PHP 7.2 work image"
|
|
||||||
@printf "%s\n" "make build-work-73: Build PHP 7.3 work image"
|
|
||||||
@printf "%s\n" "make build-work-74: Build PHP 7.4 work image"
|
|
||||||
@printf "%s\n" "make build-work-80: Build PHP 8.0 work image"
|
|
||||||
@printf "\n"
|
|
||||||
@printf "%s\n" "make rebuild-base-52: Build PHP 5.2 base image"
|
|
||||||
@printf "%s\n" "make rebuild-base-53: Build PHP 5.3 base image"
|
|
||||||
@printf "%s\n" "make rebuild-base-54: Build PHP 5.4 base image"
|
|
||||||
@printf "%s\n" "make rebuild-base-55: Build PHP 5.5 base image"
|
|
||||||
@printf "%s\n" "make rebuild-base-56: Build PHP 5.6 base image"
|
|
||||||
@printf "%s\n" "make rebuild-base-70: Build PHP 7.0 base image"
|
|
||||||
@printf "%s\n" "make rebuild-base-71: Build PHP 7.1 base image"
|
|
||||||
@printf "%s\n" "make rebuild-base-72: Build PHP 7.2 base image"
|
|
||||||
@printf "%s\n" "make rebuild-base-73: Build PHP 7.3 base image"
|
|
||||||
@printf "%s\n" "make rebuild-base-74: Build PHP 7.4 base image"
|
|
||||||
@printf "%s\n" "make rebuild-base-80: Build PHP 8.0 base image"
|
|
||||||
@printf "\n"
|
|
||||||
@printf "%s\n" "make rebuild-mods-52: Build PHP 5.2 mods image"
|
|
||||||
@printf "%s\n" "make rebuild-mods-53: Build PHP 5.3 mods image"
|
|
||||||
@printf "%s\n" "make rebuild-mods-54: Build PHP 5.4 mods image"
|
|
||||||
@printf "%s\n" "make rebuild-mods-55: Build PHP 5.5 mods image"
|
|
||||||
@printf "%s\n" "make rebuild-mods-56: Build PHP 5.6 mods image"
|
|
||||||
@printf "%s\n" "make rebuild-mods-70: Build PHP 7.0 mods image"
|
|
||||||
@printf "%s\n" "make rebuild-mods-71: Build PHP 7.1 mods image"
|
|
||||||
@printf "%s\n" "make rebuild-mods-72: Build PHP 7.2 mods image"
|
|
||||||
@printf "%s\n" "make rebuild-mods-73: Build PHP 7.3 mods image"
|
|
||||||
@printf "%s\n" "make rebuild-mods-74: Build PHP 7.4 mods image"
|
|
||||||
@printf "%s\n" "make rebuild-mods-80: Build PHP 8.0 mods image"
|
|
||||||
@printf "\n"
|
|
||||||
@printf "%s\n" "make rebuild-prod-52: Build PHP 5.2 prod image"
|
|
||||||
@printf "%s\n" "make rebuild-prod-53: Build PHP 5.3 prod image"
|
|
||||||
@printf "%s\n" "make rebuild-prod-54: Build PHP 5.4 prod image"
|
|
||||||
@printf "%s\n" "make rebuild-prod-55: Build PHP 5.5 prod image"
|
|
||||||
@printf "%s\n" "make rebuild-prod-56: Build PHP 5.6 prod image"
|
|
||||||
@printf "%s\n" "make rebuild-prod-70: Build PHP 7.0 prod image"
|
|
||||||
@printf "%s\n" "make rebuild-prod-71: Build PHP 7.1 prod image"
|
|
||||||
@printf "%s\n" "make rebuild-prod-72: Build PHP 7.2 prod image"
|
|
||||||
@printf "%s\n" "make rebuild-prod-73: Build PHP 7.3 prod image"
|
|
||||||
@printf "%s\n" "make rebuild-prod-74: Build PHP 7.4 prod image"
|
|
||||||
@printf "%s\n" "make rebuild-prod-80: Build PHP 8.0 prod image"
|
|
||||||
@printf "\n"
|
|
||||||
@printf "%s\n" "make rebuild-work-52: Build PHP 5.2 work image"
|
|
||||||
@printf "%s\n" "make rebuild-work-53: Build PHP 5.3 work image"
|
|
||||||
@printf "%s\n" "make rebuild-work-54: Build PHP 5.4 work image"
|
|
||||||
@printf "%s\n" "make rebuild-work-55: Build PHP 5.5 work image"
|
|
||||||
@printf "%s\n" "make rebuild-work-56: Build PHP 5.6 work image"
|
|
||||||
@printf "%s\n" "make rebuild-work-70: Build PHP 7.0 work image"
|
|
||||||
@printf "%s\n" "make rebuild-work-71: Build PHP 7.1 work image"
|
|
||||||
@printf "%s\n" "make rebuild-work-72: Build PHP 7.2 work image"
|
|
||||||
@printf "%s\n" "make rebuild-work-73: Build PHP 7.3 work image"
|
|
||||||
@printf "%s\n" "make rebuild-work-74: Build PHP 7.4 work image"
|
|
||||||
@printf "%s\n" "make rebuild-work-80: Build PHP 8.0 work image"
|
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Lint Targets
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
###
|
lint: lint-files
|
||||||
### Generate
|
lint: lint-yaml
|
||||||
###
|
lint: lint-changelog
|
||||||
generate:
|
lint: lint-workflow
|
||||||
cd build/ansible; ansible-playbook generate.yml --diff
|
|
||||||
|
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
|
||||||
|
@echo
|
||||||
|
|
||||||
|
lint-changelog:
|
||||||
|
@echo "################################################################################"
|
||||||
|
@echo "# Lint Changelog"
|
||||||
|
@echo "################################################################################"
|
||||||
|
@\
|
||||||
|
GIT_CURR_MAJOR="$$( git tag | sort -V | tail -1 | sed 's|\.[0-9]*$$||g' )"; \
|
||||||
|
GIT_CURR_MINOR="$$( git tag | sort -V | tail -1 | sed 's|^[0-9]*\.||g' )"; \
|
||||||
|
GIT_NEXT_TAG="$${GIT_CURR_MAJOR}.$$(( GIT_CURR_MINOR + 1 ))"; \
|
||||||
|
if ! grep -E "^## Release $${GIT_NEXT_TAG}$$" CHANGELOG.md >/dev/null; then \
|
||||||
|
echo "[ERR] Missing '## Release $${GIT_NEXT_TAG}' section in CHANGELOG.md"; \
|
||||||
|
exit 1; \
|
||||||
|
else \
|
||||||
|
echo "[OK] Section '## Release $${GIT_NEXT_TAG}' present in CHANGELOG.md"; \
|
||||||
|
fi
|
||||||
|
@echo
|
||||||
|
|
||||||
|
lint-files:
|
||||||
|
@echo "################################################################################"
|
||||||
|
@echo "# Lint Files"
|
||||||
|
@echo "################################################################################"
|
||||||
|
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-cr --text --ignore '$(FL_IGNORES)' --path .
|
||||||
|
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-crlf --text --ignore '$(FL_IGNORES)' --path .
|
||||||
|
@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
|
||||||
|
|
||||||
|
|
||||||
###
|
# -------------------------------------------------------------------------------------------------
|
||||||
### Update readme
|
# GENERATE TARGETS
|
||||||
###
|
# -------------------------------------------------------------------------------------------------
|
||||||
readme:
|
|
||||||
|
gen-readme:
|
||||||
|
ifeq ($(strip $(VERSION)),)
|
||||||
|
@echo "Generate README.md for all PHP versions"
|
||||||
cd build; ./gen-readme.sh
|
cd build; ./gen-readme.sh
|
||||||
|
else
|
||||||
|
@echo "Generate README.md for PHP $(VERSION)"
|
||||||
|
@$(MAKE) --no-print-directory _check-version
|
||||||
|
@$(MAKE) --no-print-directory _check-image-exists _EXIST_IMAGE=base
|
||||||
|
@$(MAKE) --no-print-directory _check-image-exists _EXIST_IMAGE=mods
|
||||||
|
cd build; ./gen-readme.sh $(VERSION)
|
||||||
|
endif
|
||||||
|
|
||||||
###
|
gen-dockerfiles:
|
||||||
### Generate and build
|
docker run --rm \
|
||||||
###
|
$$(tty -s && echo "-it" || echo) \
|
||||||
gen-build: generate build-all
|
-e USER=ansible \
|
||||||
gen-rebuild: generate rebuild-all
|
-e MY_UID=$$(id -u) \
|
||||||
|
-e MY_GID=$$(id -g) \
|
||||||
|
-v ${PWD}:/data \
|
||||||
|
-w /data/build/ansible \
|
||||||
|
cytopia/ansible:2.6-tools ansible-playbook generate.yml \
|
||||||
|
-e ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python3.6/site-packages/ansible_mitogen/plugins/strategy \
|
||||||
|
-e ANSIBLE_STRATEGY=mitogen_linear \
|
||||||
|
-e ansible_python_interpreter=/usr/bin/python3 \
|
||||||
|
-e \"{build_fail_fast: $(FAIL_FAST)}\" \
|
||||||
|
--diff $(ARGS)
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# 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
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
rebuild-base: _pull-base-image
|
||||||
|
rebuild-base: NO_CACHE=--no-cache
|
||||||
|
rebuild-base: build-base
|
||||||
|
|
||||||
|
|
||||||
|
rebuild-mods: NO_CACHE=--no-cache
|
||||||
|
rebuild-mods: build-mods
|
||||||
|
|
||||||
|
|
||||||
|
rebuild-prod: NO_CACHE=--no-cache
|
||||||
|
rebuild-prod: build-prod
|
||||||
|
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
# -------------------------------------------------------------------------------------------------
|
||||||
### Build all
|
# HELPER TARGETS
|
||||||
###
|
# -------------------------------------------------------------------------------------------------
|
||||||
build-all: build-base build-mods build-prod build-work
|
|
||||||
rebuild-all: rebuild-base rebuild-mods rebuild-prod rebuild-work
|
_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 \
|
||||||
### Build categories
|
>&2 echo "Docker image '$(IMAGE):$(VERSION)-$(_EXIST_IMAGE)' was not found locally."; \
|
||||||
###
|
>&2 echo "Either build it first or explicitly pull it from Dockerhub."; \
|
||||||
build-base: build-base-52 build-base-53 build-base-54 build-base-55 build-base-56 build-base-70 build-base-71 build-base-72 build-base-73 build-base-74 build-base-80
|
>&2 echo "This is a safeguard to not automatically pull the Docker image."; \
|
||||||
build-mods: build-mods-52 build-mods-53 build-mods-54 build-mods-55 build-mods-56 build-mods-70 build-mods-71 build-mods-72 build-mods-73 build-mods-74 build-mods-80
|
>&2 echo; \
|
||||||
build-prod: build-prod-52 build-prod-53 build-prod-54 build-prod-55 build-prod-56 build-prod-70 build-prod-71 build-prod-72 build-prod-73 build-prod-74 build-prod-80
|
false; \
|
||||||
build-work: build-work-52 build-work-53 build-work-54 build-work-55 build-work-56 build-work-70 build-work-71 build-work-72 build-work-73 build-work-74 build-work-80
|
fi;
|
||||||
|
|
||||||
rebuild-base: rebuild-base-52 rebuild-base-53 rebuild-base-54 rebuild-base-55 rebuild-base-56 rebuild-base-70 rebuild-base-71 rebuild-base-72 rebuild-base-73 rebuild-base-74 rebuild-base-80
|
|
||||||
rebuild-mods: rebuild-mods-52 rebuild-mods-53 rebuild-mods-54 rebuild-mods-55 rebuild-mods-56 rebuild-mods-70 rebuild-mods-71 rebuild-mods-72 rebuild-mods-73 rebuild-mods-74 rebuild-mods-80
|
|
||||||
rebuild-prod: rebuild-prod-52 rebuild-prod-53 rebuild-prod-54 rebuild-prod-55 rebuild-prod-56 rebuild-prod-70 rebuild-prod-71 rebuild-prod-72 rebuild-prod-73 rebuild-prod-74 rebuild-prod-80
|
|
||||||
rebuild-work: rebuild-work-52 rebuild-work-53 rebuild-work-54 rebuild-work-55 rebuild-work-56 rebuild-work-70 rebuild-work-71 rebuild-work-72 rebuild-work-73 rebuild-work-74 rebuild-work-80
|
|
||||||
|
|
||||||
|
|
||||||
|
_pull-base-image:
|
||||||
###
|
@echo "Pulling root image for PHP ${VERSION}"
|
||||||
### Build separately
|
@docker pull $(shell grep FROM $(DIR)/base/Dockerfile-${VERSION} | sed 's/^FROM\s*//g';)
|
||||||
###
|
|
||||||
build-base-52: pull-from-52
|
|
||||||
docker build -t devilbox/php-fpm:5.2-base -f $(location)/base/Dockerfile-5.2 $(location)/base
|
|
||||||
build-base-53: pull-from-53
|
|
||||||
docker build -t devilbox/php-fpm:5.3-base -f $(location)/base/Dockerfile-5.3 $(location)/base
|
|
||||||
build-base-54: pull-from-54
|
|
||||||
docker build -t devilbox/php-fpm:5.4-base -f $(location)/base/Dockerfile-5.4 $(location)/base
|
|
||||||
build-base-55: pull-from-55
|
|
||||||
docker build -t devilbox/php-fpm:5.5-base -f $(location)/base/Dockerfile-5.5 $(location)/base
|
|
||||||
build-base-56: pull-from-56
|
|
||||||
docker build -t devilbox/php-fpm:5.6-base -f $(location)/base/Dockerfile-5.6 $(location)/base
|
|
||||||
build-base-70: pull-from-70
|
|
||||||
docker build -t devilbox/php-fpm:7.0-base -f $(location)/base/Dockerfile-7.0 $(location)/base
|
|
||||||
build-base-71: pull-from-71
|
|
||||||
docker build -t devilbox/php-fpm:7.1-base -f $(location)/base/Dockerfile-7.1 $(location)/base
|
|
||||||
build-base-72: pull-from-72
|
|
||||||
docker build -t devilbox/php-fpm:7.2-base -f $(location)/base/Dockerfile-7.2 $(location)/base
|
|
||||||
build-base-73: pull-from-73
|
|
||||||
docker build -t devilbox/php-fpm:7.3-base -f $(location)/base/Dockerfile-7.3 $(location)/base
|
|
||||||
build-base-74: pull-from-74
|
|
||||||
docker build -t devilbox/php-fpm:7.4-base -f $(location)/base/Dockerfile-7.4 $(location)/base
|
|
||||||
build-base-80: pull-from-80
|
|
||||||
docker build -t devilbox/php-fpm:8.0-base -f $(location)/base/Dockerfile-8.0 $(location)/base
|
|
||||||
|
|
||||||
build-mods-52:
|
|
||||||
docker build -t devilbox/php-fpm:5.2-mods -f $(location)/mods/Dockerfile-5.2 $(location)/mods
|
|
||||||
build-mods-53:
|
|
||||||
docker build -t devilbox/php-fpm:5.3-mods -f $(location)/mods/Dockerfile-5.3 $(location)/mods
|
|
||||||
build-mods-54:
|
|
||||||
docker build -t devilbox/php-fpm:5.4-mods -f $(location)/mods/Dockerfile-5.4 $(location)/mods
|
|
||||||
build-mods-55:
|
|
||||||
docker build -t devilbox/php-fpm:5.5-mods -f $(location)/mods/Dockerfile-5.5 $(location)/mods
|
|
||||||
build-mods-56:
|
|
||||||
docker build -t devilbox/php-fpm:5.6-mods -f $(location)/mods/Dockerfile-5.6 $(location)/mods
|
|
||||||
build-mods-70:
|
|
||||||
docker build -t devilbox/php-fpm:7.0-mods -f $(location)/mods/Dockerfile-7.0 $(location)/mods
|
|
||||||
build-mods-71:
|
|
||||||
docker build -t devilbox/php-fpm:7.1-mods -f $(location)/mods/Dockerfile-7.1 $(location)/mods
|
|
||||||
build-mods-72:
|
|
||||||
docker build -t devilbox/php-fpm:7.2-mods -f $(location)/mods/Dockerfile-7.2 $(location)/mods
|
|
||||||
build-mods-73:
|
|
||||||
docker build -t devilbox/php-fpm:7.3-mods -f $(location)/mods/Dockerfile-7.3 $(location)/mods
|
|
||||||
build-mods-74:
|
|
||||||
docker build -t devilbox/php-fpm:7.4-mods -f $(location)/mods/Dockerfile-7.4 $(location)/mods
|
|
||||||
build-mods-80:
|
|
||||||
docker build -t devilbox/php-fpm:8.0-mods -f $(location)/mods/Dockerfile-8.0 $(location)/mods
|
|
||||||
|
|
||||||
build-prod-52:
|
|
||||||
docker build -t devilbox/php-fpm:5.2-prod -f $(location)/prod/Dockerfile-5.2 $(location)/prod
|
|
||||||
build-prod-53:
|
|
||||||
docker build -t devilbox/php-fpm:5.3-prod -f $(location)/prod/Dockerfile-5.3 $(location)/prod
|
|
||||||
build-prod-54:
|
|
||||||
docker build -t devilbox/php-fpm:5.4-prod -f $(location)/prod/Dockerfile-5.4 $(location)/prod
|
|
||||||
build-prod-55:
|
|
||||||
docker build -t devilbox/php-fpm:5.5-prod -f $(location)/prod/Dockerfile-5.5 $(location)/prod
|
|
||||||
build-prod-56:
|
|
||||||
docker build -t devilbox/php-fpm:5.6-prod -f $(location)/prod/Dockerfile-5.6 $(location)/prod
|
|
||||||
build-prod-70:
|
|
||||||
docker build -t devilbox/php-fpm:7.0-prod -f $(location)/prod/Dockerfile-7.0 $(location)/prod
|
|
||||||
build-prod-71:
|
|
||||||
docker build -t devilbox/php-fpm:7.1-prod -f $(location)/prod/Dockerfile-7.1 $(location)/prod
|
|
||||||
build-prod-72:
|
|
||||||
docker build -t devilbox/php-fpm:7.2-prod -f $(location)/prod/Dockerfile-7.2 $(location)/prod
|
|
||||||
build-prod-73:
|
|
||||||
docker build -t devilbox/php-fpm:7.3-prod -f $(location)/prod/Dockerfile-7.3 $(location)/prod
|
|
||||||
build-prod-74:
|
|
||||||
docker build -t devilbox/php-fpm:7.4-prod -f $(location)/prod/Dockerfile-7.4 $(location)/prod
|
|
||||||
build-prod-80:
|
|
||||||
docker build -t devilbox/php-fpm:8.0-prod -f $(location)/prod/Dockerfile-8.0 $(location)/prod
|
|
||||||
|
|
||||||
build-work-52:
|
|
||||||
docker build -t devilbox/php-fpm:5.2-work -f $(location)/work/Dockerfile-5.2 $(location)/work
|
|
||||||
build-work-53:
|
|
||||||
docker build -t devilbox/php-fpm:5.3-work -f $(location)/work/Dockerfile-5.3 $(location)/work
|
|
||||||
build-work-54:
|
|
||||||
docker build -t devilbox/php-fpm:5.4-work -f $(location)/work/Dockerfile-5.4 $(location)/work
|
|
||||||
build-work-55:
|
|
||||||
docker build -t devilbox/php-fpm:5.5-work -f $(location)/work/Dockerfile-5.5 $(location)/work
|
|
||||||
build-work-56:
|
|
||||||
docker build -t devilbox/php-fpm:5.6-work -f $(location)/work/Dockerfile-5.6 $(location)/work
|
|
||||||
build-work-70:
|
|
||||||
docker build -t devilbox/php-fpm:7.0-work -f $(location)/work/Dockerfile-7.0 $(location)/work
|
|
||||||
build-work-71:
|
|
||||||
docker build -t devilbox/php-fpm:7.1-work -f $(location)/work/Dockerfile-7.1 $(location)/work
|
|
||||||
build-work-72:
|
|
||||||
docker build -t devilbox/php-fpm:7.2-work -f $(location)/work/Dockerfile-7.2 $(location)/work
|
|
||||||
build-work-73:
|
|
||||||
docker build -t devilbox/php-fpm:7.3-work -f $(location)/work/Dockerfile-7.3 $(location)/work
|
|
||||||
build-work-74:
|
|
||||||
docker build -t devilbox/php-fpm:7.4-work -f $(location)/work/Dockerfile-7.4 $(location)/work
|
|
||||||
build-work-80:
|
|
||||||
docker build -t devilbox/php-fpm:8.0-work -f $(location)/work/Dockerfile-8.0 $(location)/work
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Rebuild separately
|
|
||||||
###
|
|
||||||
rebuild-base-52: pull-from-52
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.2-base -f $(location)/base/Dockerfile-5.2 $(location)/base
|
|
||||||
rebuild-base-53: pull-from-53
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.3-base -f $(location)/base/Dockerfile-5.3 $(location)/base
|
|
||||||
rebuild-base-54: pull-from-54
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.4-base -f $(location)/base/Dockerfile-5.4 $(location)/base
|
|
||||||
rebuild-base-55: pull-from-55
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.5-base -f $(location)/base/Dockerfile-5.5 $(location)/base
|
|
||||||
rebuild-base-56: pull-from-56
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.6-base -f $(location)/base/Dockerfile-5.6 $(location)/base
|
|
||||||
rebuild-base-70: pull-from-70
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.0-base -f $(location)/base/Dockerfile-7.0 $(location)/base
|
|
||||||
rebuild-base-71: pull-from-71
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.1-base -f $(location)/base/Dockerfile-7.1 $(location)/base
|
|
||||||
rebuild-base-72: pull-from-72
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.2-base -f $(location)/base/Dockerfile-7.2 $(location)/base
|
|
||||||
rebuild-base-73: pull-from-73
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.3-base -f $(location)/base/Dockerfile-7.3 $(location)/base
|
|
||||||
rebuild-base-74: pull-from-74
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.4-base -f $(location)/base/Dockerfile-7.4 $(location)/base
|
|
||||||
rebuild-base-80: pull-from-80
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:8.0-base -f $(location)/base/Dockerfile-8.0 $(location)/base
|
|
||||||
|
|
||||||
rebuild-mods-52:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.2-mods -f $(location)/mods/Dockerfile-5.2 $(location)/mods
|
|
||||||
rebuild-mods-53:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.3-mods -f $(location)/mods/Dockerfile-5.3 $(location)/mods
|
|
||||||
rebuild-mods-54:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.4-mods -f $(location)/mods/Dockerfile-5.4 $(location)/mods
|
|
||||||
rebuild-mods-55:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.5-mods -f $(location)/mods/Dockerfile-5.5 $(location)/mods
|
|
||||||
rebuild-mods-56:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.6-mods -f $(location)/mods/Dockerfile-5.6 $(location)/mods
|
|
||||||
rebuild-mods-70:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.0-mods -f $(location)/mods/Dockerfile-7.0 $(location)/mods
|
|
||||||
rebuild-mods-71:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.1-mods -f $(location)/mods/Dockerfile-7.1 $(location)/mods
|
|
||||||
rebuild-mods-72:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.2-mods -f $(location)/mods/Dockerfile-7.2 $(location)/mods
|
|
||||||
rebuild-mods-73:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.3-mods -f $(location)/mods/Dockerfile-7.3 $(location)/mods
|
|
||||||
rebuild-mods-74:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.4-mods -f $(location)/mods/Dockerfile-7.4 $(location)/mods
|
|
||||||
rebuild-mods-80:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:8.0-mods -f $(location)/mods/Dockerfile-8.0 $(location)/mods
|
|
||||||
|
|
||||||
rebuild-prod-52:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.2-prod -f $(location)/prod/Dockerfile-5.2 $(location)/prod
|
|
||||||
rebuild-prod-53:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.3-prod -f $(location)/prod/Dockerfile-5.3 $(location)/prod
|
|
||||||
rebuild-prod-54:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.4-prod -f $(location)/prod/Dockerfile-5.4 $(location)/prod
|
|
||||||
rebuild-prod-55:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.5-prod -f $(location)/prod/Dockerfile-5.5 $(location)/prod
|
|
||||||
rebuild-prod-56:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.6-prod -f $(location)/prod/Dockerfile-5.6 $(location)/prod
|
|
||||||
rebuild-prod-70:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.0-prod -f $(location)/prod/Dockerfile-7.0 $(location)/prod
|
|
||||||
rebuild-prod-71:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.1-prod -f $(location)/prod/Dockerfile-7.1 $(location)/prod
|
|
||||||
rebuild-prod-72:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.2-prod -f $(location)/prod/Dockerfile-7.2 $(location)/prod
|
|
||||||
rebuild-prod-73:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.3-prod -f $(location)/prod/Dockerfile-7.3 $(location)/prod
|
|
||||||
rebuild-prod-74:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.4-prod -f $(location)/prod/Dockerfile-7.4 $(location)/prod
|
|
||||||
rebuild-prod-80:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:8.0-prod -f $(location)/prod/Dockerfile-8.0 $(location)/prod
|
|
||||||
|
|
||||||
rebuild-work-52:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.2-work -f $(location)/work/Dockerfile-5.2 $(location)/work
|
|
||||||
rebuild-work-53:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.3-work -f $(location)/work/Dockerfile-5.3 $(location)/work
|
|
||||||
rebuild-work-54:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.4-work -f $(location)/work/Dockerfile-5.4 $(location)/work
|
|
||||||
rebuild-work-55:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.5-work -f $(location)/work/Dockerfile-5.5 $(location)/work
|
|
||||||
rebuild-work-56:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:5.6-work -f $(location)/work/Dockerfile-5.6 $(location)/work
|
|
||||||
rebuild-work-70:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.0-work -f $(location)/work/Dockerfile-7.0 $(location)/work
|
|
||||||
rebuild-work-71:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.1-work -f $(location)/work/Dockerfile-7.1 $(location)/work
|
|
||||||
rebuild-work-72:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.2-work -f $(location)/work/Dockerfile-7.2 $(location)/work
|
|
||||||
rebuild-work-73:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.3-work -f $(location)/work/Dockerfile-7.3 $(location)/work
|
|
||||||
rebuild-work-74:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:7.4-work -f $(location)/work/Dockerfile-7.4 $(location)/work
|
|
||||||
rebuild-work-80:
|
|
||||||
docker build --no-cache -t devilbox/php-fpm:8.0-work -f $(location)/work/Dockerfile-8.0 $(location)/work
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Pull base FROM images
|
|
||||||
###
|
|
||||||
pull-from-52:
|
|
||||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-5.2 | sed 's/^FROM\s*//g';)
|
|
||||||
pull-from-53:
|
|
||||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-5.3 | sed 's/^FROM\s*//g';)
|
|
||||||
pull-from-54:
|
|
||||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-5.4 | sed 's/^FROM\s*//g';)
|
|
||||||
pull-from-55:
|
|
||||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-5.5 | sed 's/^FROM\s*//g';)
|
|
||||||
pull-from-56:
|
|
||||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-5.6 | sed 's/^FROM\s*//g';)
|
|
||||||
pull-from-70:
|
|
||||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.0 | sed 's/^FROM\s*//g';)
|
|
||||||
pull-from-71:
|
|
||||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.1 | sed 's/^FROM\s*//g';)
|
|
||||||
pull-from-72:
|
|
||||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.2 | sed 's/^FROM\s*//g';)
|
|
||||||
pull-from-73:
|
|
||||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.3 | sed 's/^FROM\s*//g';)
|
|
||||||
pull-from-74:
|
|
||||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.4 | sed 's/^FROM\s*//g';)
|
|
||||||
pull-from-80:
|
|
||||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-8.0 | sed 's/^FROM\s*//g';)
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Test all
|
|
||||||
###
|
|
||||||
test-all: test-base test-mods test-prod test-work
|
|
||||||
|
|
||||||
test-base: test-base-52 test-base-53 test-base-54 test-base-55 test-base-56 test-base-70 test-base-71 test-base-72 test-base-73 test-base-74 test-base-80
|
|
||||||
test-mods: test-mods-52 test-mods-53 test-mods-54 test-mods-55 test-mods-56 test-mods-70 test-mods-71 test-mods-72 test-mods-73 test-mods-74 test-mods-80
|
|
||||||
test-prod: test-prod-52 test-prod-53 test-prod-54 test-prod-55 test-prod-56 test-prod-70 test-prod-71 test-prod-72 test-prod-73 test-prod-74 test-prod-80
|
|
||||||
test-work: test-work-52 test-work-53 test-work-54 test-work-55 test-work-56 test-work-70 test-work-71 test-work-72 test-work-73 test-work-74 test-work-80
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Tests
|
|
||||||
###
|
|
||||||
test-base-52:
|
|
||||||
./tests/test.sh 5.2 base
|
|
||||||
test-base-53:
|
|
||||||
./tests/test.sh 5.3 base
|
|
||||||
test-base-54:
|
|
||||||
./tests/test.sh 5.4 base
|
|
||||||
test-base-55:
|
|
||||||
./tests/test.sh 5.5 base
|
|
||||||
test-base-56:
|
|
||||||
./tests/test.sh 5.6 base
|
|
||||||
test-base-70:
|
|
||||||
./tests/test.sh 7.0 base
|
|
||||||
test-base-71:
|
|
||||||
./tests/test.sh 7.1 base
|
|
||||||
test-base-72:
|
|
||||||
./tests/test.sh 7.2 base
|
|
||||||
test-base-73:
|
|
||||||
./tests/test.sh 7.3 base
|
|
||||||
test-base-74:
|
|
||||||
./tests/test.sh 7.4 base
|
|
||||||
test-base-80:
|
|
||||||
./tests/test.sh 8.0 base
|
|
||||||
|
|
||||||
test-mods-52:
|
|
||||||
./tests/test.sh 5.2 mods
|
|
||||||
test-mods-53:
|
|
||||||
./tests/test.sh 5.3 mods
|
|
||||||
test-mods-54:
|
|
||||||
./tests/test.sh 5.4 mods
|
|
||||||
test-mods-55:
|
|
||||||
./tests/test.sh 5.5 mods
|
|
||||||
test-mods-56:
|
|
||||||
./tests/test.sh 5.6 mods
|
|
||||||
test-mods-70:
|
|
||||||
./tests/test.sh 7.0 mods
|
|
||||||
test-mods-71:
|
|
||||||
./tests/test.sh 7.1 mods
|
|
||||||
test-mods-72:
|
|
||||||
./tests/test.sh 7.2 mods
|
|
||||||
test-mods-73:
|
|
||||||
./tests/test.sh 7.3 mods
|
|
||||||
test-mods-74:
|
|
||||||
./tests/test.sh 7.4 mods
|
|
||||||
test-mods-80:
|
|
||||||
./tests/test.sh 8.0 mods
|
|
||||||
|
|
||||||
test-prod-52:
|
|
||||||
./tests/test.sh 5.2 prod
|
|
||||||
test-prod-53:
|
|
||||||
./tests/test.sh 5.3 prod
|
|
||||||
test-prod-54:
|
|
||||||
./tests/test.sh 5.4 prod
|
|
||||||
test-prod-55:
|
|
||||||
./tests/test.sh 5.5 prod
|
|
||||||
test-prod-56:
|
|
||||||
./tests/test.sh 5.6 prod
|
|
||||||
test-prod-70:
|
|
||||||
./tests/test.sh 7.0 prod
|
|
||||||
test-prod-71:
|
|
||||||
./tests/test.sh 7.1 prod
|
|
||||||
test-prod-72:
|
|
||||||
./tests/test.sh 7.2 prod
|
|
||||||
test-prod-73:
|
|
||||||
./tests/test.sh 7.3 prod
|
|
||||||
test-prod-74:
|
|
||||||
./tests/test.sh 7.4 prod
|
|
||||||
test-prod-80:
|
|
||||||
./tests/test.sh 8.0 prod
|
|
||||||
|
|
||||||
test-work-52:
|
|
||||||
./tests/test.sh 5.2 work
|
|
||||||
test-work-53:
|
|
||||||
./tests/test.sh 5.3 work
|
|
||||||
test-work-54:
|
|
||||||
./tests/test.sh 5.4 work
|
|
||||||
test-work-55:
|
|
||||||
./tests/test.sh 5.5 work
|
|
||||||
test-work-56:
|
|
||||||
./tests/test.sh 5.6 work
|
|
||||||
test-work-70:
|
|
||||||
./tests/test.sh 7.0 work
|
|
||||||
test-work-71:
|
|
||||||
./tests/test.sh 7.1 work
|
|
||||||
test-work-72:
|
|
||||||
./tests/test.sh 7.2 work
|
|
||||||
test-work-73:
|
|
||||||
./tests/test.sh 7.3 work
|
|
||||||
test-work-74:
|
|
||||||
./tests/test.sh 7.4 work
|
|
||||||
test-work-80:
|
|
||||||
./tests/test.sh 8.0 work
|
|
||||||
|
|||||||
105
README.md
105
README.md
@@ -1,11 +1,14 @@
|
|||||||
# PHP-FPM Docker images
|
# PHP-FPM Docker images
|
||||||
|
|
||||||
[](https://travis-ci.org/devilbox/docker-php-fpm)
|
[](https://github.com/devilbox/docker-php-fpm/actions?workflow=lint)
|
||||||
|
[](https://github.com/devilbox/docker-php-fpm/actions?workflow=build)
|
||||||
|
[](https://github.com/devilbox/docker-php-fpm/actions?workflow=nightly)
|
||||||
[](https://github.com/devilbox/docker-php-fpm/releases)
|
[](https://github.com/devilbox/docker-php-fpm/releases)
|
||||||
[](https://gitter.im/devilbox/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
[](https://gitter.im/devilbox/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||||
[](https://devilbox.discourse.group)
|
[](https://devilbox.discourse.group)
|
||||||
[](https://opensource.org/licenses/MIT)
|
[](https://opensource.org/licenses/MIT)
|
||||||
|
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
@@ -21,6 +24,7 @@ Have a look at the following Devilbox base images for which no official versions
|
|||||||
* [PHP-FPM 5.3](https://github.com/devilbox/docker-php-fpm-5.3)
|
* [PHP-FPM 5.3](https://github.com/devilbox/docker-php-fpm-5.3)
|
||||||
* [PHP-FPM 7.4](https://github.com/devilbox/docker-php-fpm-7.4)
|
* [PHP-FPM 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)
|
||||||
|
|
||||||
#### Documentation
|
#### Documentation
|
||||||
|
|
||||||
@@ -109,7 +113,7 @@ One main problem with a running Docker container is to **synchronize the ownersh
|
|||||||
|
|
||||||
#### Unsynchronized permissions
|
#### Unsynchronized permissions
|
||||||
|
|
||||||
Consider the following directory structure of a mounted volume. Your hosts computer uid/gid are `1000` which does not have a corresponding user/group within the container. Fortunately the `tmp/` directory allows everybody to create new files in it.
|
Consider the following directory structure of a mounted volume. Your hosts computer uid/gid are `1000` which does not have a corresponding user/group within the container. Fortunately the `tmp/` directory allows everybody to create new files in it.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
[Host] | [Container]
|
[Host] | [Container]
|
||||||
@@ -217,7 +221,7 @@ The following table shows a more complete overview about the offered Docker imag
|
|||||||
<tbody>
|
<tbody>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td rowspan="11"><strong>base</strong></td>
|
<td rowspan="12"><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>
|
||||||
@@ -293,9 +297,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.0-base.svg" /></a>
|
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.0-base.svg" /></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>devilbox/php-fpm:8.1-base</code></td>
|
||||||
|
<td>
|
||||||
|
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.1-base.svg" /></a>
|
||||||
|
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.1-base.svg" /></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td rowspan="11"><strong>mods</strong></td>
|
<td rowspan="12"><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>
|
||||||
@@ -372,9 +383,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.0-mods.svg" /></a>
|
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.0-mods.svg" /></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>devilbox/php-fpm:8.1-mods</code></td>
|
||||||
|
<td>
|
||||||
|
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.1-mods.svg" /></a>
|
||||||
|
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.1-mods.svg" /></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td rowspan="11"><strong>prod</strong></td>
|
<td rowspan="12"><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>
|
||||||
@@ -451,9 +469,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.0-prod.svg" /></a>
|
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.0-prod.svg" /></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>devilbox/php-fpm:8.1-prod</code></td>
|
||||||
|
<td>
|
||||||
|
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.1-prod.svg" /></a>
|
||||||
|
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.1-prod.svg" /></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td rowspan="11"><strong>work</strong></td>
|
<td rowspan="12"><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>
|
||||||
@@ -530,6 +555,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.0-work.svg" /></a>
|
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.0-work.svg" /></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>devilbox/php-fpm:8.1-work</code></td>
|
||||||
|
<td>
|
||||||
|
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.1-work.svg" /></a>
|
||||||
|
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.1-work.svg" /></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@@ -598,57 +630,62 @@ Check out this table to see which Docker image provides what PHP modules.
|
|||||||
<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, hash, iconv, json, libxml, mbstring, mysql, mysqli, openssl, pcre, PDO, pdo_mysql, pdo_sqlite, posix, readline, Reflection, session, SimpleXML, soap, SPL, SQLite, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||||
<td id="52-mods">amqp, bcmath, bz2, calendar, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, igbinary, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongo, msgpack, mysql, mysqli, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, SQLite, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
<td id="52-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>
|
||||||
</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, hash, iconv, json, libxml, mysql, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, SQLite, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||||
<td id="53-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, SQLite, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
<td id="53-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>
|
||||||
</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, hash, iconv, json, libxml, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||||
<td id="54-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
<td id="54-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>
|
||||||
</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, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||||
<td id="55-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
<td id="55-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>
|
||||||
</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, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
<td id="56-mods">amqp, apc, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mhash, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, 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, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, sqlsrv, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
<td id="70-mods">amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, 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, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, sqlsrv, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
<td id="71-mods">amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, 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, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, sqlsrv, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
<td id="72-mods">amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, 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">apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcached, mongodb, msgpack, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, sqlsrv, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
<td id="73-mods">amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, 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>
|
||||||
</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">bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, interbase, intl, json, ldap, libxml, mbstring, memcached, mongodb, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
<td id="74-mods">amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, 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>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>8.0</th>
|
<th>8.0</th>
|
||||||
<td id="80-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="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">bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, interbase, intl, json, ldap, libxml, mbstring, memcached, mongodb, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, 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>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>8.1</th>
|
||||||
|
<td id="81-base">Core, ctype, curl, date, dom, FFI, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||||
|
<td id="81-mods">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_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>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@@ -670,6 +707,7 @@ docker pull devilbox/php-fpm:7.2-base
|
|||||||
docker pull devilbox/php-fpm:7.3-base
|
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
|
||||||
```
|
```
|
||||||
|
|
||||||
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>
|
||||||
@@ -687,6 +725,7 @@ docker pull devilbox/php-fpm:7.2-mods
|
|||||||
docker pull devilbox/php-fpm:7.3-mods
|
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
|
||||||
```
|
```
|
||||||
|
|
||||||
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>
|
||||||
@@ -704,6 +743,7 @@ docker pull devilbox/php-fpm:7.2-prod
|
|||||||
docker pull devilbox/php-fpm:7.3-prod
|
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
|
||||||
```
|
```
|
||||||
|
|
||||||
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.
|
||||||
@@ -721,6 +761,7 @@ docker pull devilbox/php-fpm:7.2-work
|
|||||||
docker pull devilbox/php-fpm:7.3-work
|
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
|
||||||
```
|
```
|
||||||
|
|
||||||
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.
|
||||||
@@ -794,7 +835,7 @@ Have a look at the following table to see all supported environment variables fo
|
|||||||
<td><code>ENABLE_MAIL</code></td>
|
<td><code>ENABLE_MAIL</code></td>
|
||||||
<td>bool</td>
|
<td>bool</td>
|
||||||
<td><code>0</code></td>
|
<td><code>0</code></td>
|
||||||
<td>Enable local email catch-all.<br/>Postfix will be configured for local delivery and all mails sent (even to real domains) will be catched locally. No email will ever go out. They will all be stored in a local devilbox account.<br/>Value: <code>0</code> or <code>1</code></td>
|
<td>Start local postfix with or without email catch-all.<br/><code>0</code>: Postfix service disabled.<br/><code>1</code>: Postfix service started normally.<br/><code>2</code>: Postfix service started configured for local delivery and all mails sent (even to real domains) will be catched locally. No email will ever go out. They will all be stored in a local devilbox account.<br/>Value: <code>0</code>, <code>1</code> or <code>2</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>FORWARD_PORTS_TO_LOCALHOST</code></td>
|
<td><code>FORWARD_PORTS_TO_LOCALHOST</code></td>
|
||||||
@@ -841,7 +882,7 @@ Have a look at the following table to see all offered volumes for each Docker im
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td rowspan="7"><strong>prod</strong><br/><br/><strong>work</strong></td>
|
<td rowspan="8"><strong>prod</strong><br/><br/><strong>work</strong></td>
|
||||||
<td><code>/etc/php-custom.d</code></td>
|
<td><code>/etc/php-custom.d</code></td>
|
||||||
<td>Mount this directory into your host computer and add custom <code>\*.ini</code> files in order to alter php behaviour.</td>
|
<td>Mount this directory into your host computer and add custom <code>\*.ini</code> files in order to alter php behaviour.</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -867,7 +908,11 @@ Have a look at the following table to see all offered volumes for each Docker im
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>/var/mail</code></td>
|
<td><code>/var/mail</code></td>
|
||||||
<td>Emails caught be the postfix catch-all (<code>ENABLE_MAIL=1</code>) will be available in this directory.</td>
|
<td>Emails caught be the postfix catch-all (<code>ENABLE_MAIL=2</code>) will be available in this directory.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>/etc/supervisor/custom.d</code></td>
|
||||||
|
<td>Mount this directory into your host computer and add your own `*.conf` supervisor start-up files.<br/><br/>**Note:** Directory and file permission will be recursively set to this of `NEW_UID` and `NEW_GID`.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="3"></td>
|
<td colspan="3"></td>
|
||||||
@@ -932,7 +977,7 @@ If you plan to use the PHP-FPM image for development, hence being able to execut
|
|||||||
|
|
||||||
The **work** Docker image has many common tools already installed which on one hand increases its image size, but on the other hand removes the necessity to install those tools locally.
|
The **work** Docker image has many common tools already installed which on one hand increases its image size, but on the other hand removes the necessity to install those tools locally.
|
||||||
|
|
||||||
You want to use tools such as `git`, `drush`, `composer`, `npm`, `eslint`, `phpcs` as well as many others, simply do it directly inside the container. As all Docker images are auto-built every night by travis-ci it is assured that you are always at the latest version of your favorite dev tool.
|
You want to use tools such as `git`, `drush`, `composer`, `npm`, `eslint`, `phpcs` as well as many others, simply do it directly inside the container. As all Docker images are auto-built every night by GitHub Actions it is assured that you are always at the latest version of your favorite dev tool.
|
||||||
|
|
||||||
|
|
||||||
#### What tools can you expect
|
#### What tools can you expect
|
||||||
@@ -1052,6 +1097,10 @@ You want to use tools such as `git`, `drush`, `composer`, `npm`, `eslint`, `phpc
|
|||||||
<td><a href="https://github.com/FriendsOfPHP/PHP-CS-Fixer">php-cs-fixer</a></td>
|
<td><a href="https://github.com/FriendsOfPHP/PHP-CS-Fixer">php-cs-fixer</a></td>
|
||||||
<td>A tool to automatically fix PHP Coding Standards issues.</td>
|
<td>A tool to automatically fix PHP Coding Standards issues.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><a href="https://phpmd.org">phpmd</a></td>
|
||||||
|
<td>PHP Mess Detector.</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://photoncms.com/resources/installing">photon</a></td>
|
<td><a href="https://photoncms.com/resources/installing">photon</a></td>
|
||||||
<td>Photon CMS cli.</td>
|
<td>Photon CMS cli.</td>
|
||||||
@@ -1061,7 +1110,7 @@ You want to use tools such as `git`, `drush`, `composer`, `npm`, `eslint`, `phpc
|
|||||||
<td>Sass CSS compiler.</td>
|
<td>Sass CSS compiler.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://github.com/brigade/scss-lint">scss-lint</a></td>
|
<td><a href="https://github.com/stylelint/stylelint">stylelint</a></td>
|
||||||
<td>Sass/CSS command line linter.</td>
|
<td>Sass/CSS command line linter.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -1182,12 +1231,12 @@ $ docker run -d \
|
|||||||
|
|
||||||
#### Launch Postfix for mail-catching
|
#### Launch Postfix for mail-catching
|
||||||
|
|
||||||
Once you set `$ENABLE_MAIL=1`, all mails sent via any of your PHP applications no matter to which domain, are catched locally into the `devilbox` account. You can also mount the mail directory locally to hook in with mutt and read those mails.
|
Once you set `$ENABLE_MAIL=2`, all mails sent via any of your PHP applications no matter to which domain, are catched locally into the `devilbox` account. You can also mount the mail directory locally to hook in with mutt and read those mails.
|
||||||
```shell
|
```shell
|
||||||
$ docker run -d \
|
$ docker run -d \
|
||||||
-p 127.0.0.1:9000:9000 \
|
-p 127.0.0.1:9000:9000 \
|
||||||
-v /tmp/mail:/var/mail \
|
-v /tmp/mail:/var/mail \
|
||||||
-e ENABLE_MAIL=1 \
|
-e ENABLE_MAIL=2 \
|
||||||
-t devilbox/php-fpm:7.2-prod
|
-t devilbox/php-fpm:7.2-prod
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -1224,7 +1273,7 @@ $ docker run -d \
|
|||||||
-e MYSQL_BACKUP_USER=root \
|
-e MYSQL_BACKUP_USER=root \
|
||||||
-e MYSQL_BACKUP_PASS=somepass \
|
-e MYSQL_BACKUP_PASS=somepass \
|
||||||
-e MYSQL_BACKUP_HOST=mysql \
|
-e MYSQL_BACKUP_HOST=mysql \
|
||||||
-v ~/backups:/shared/backsup \
|
-v ~/backups:/shared/backups \
|
||||||
--name php \
|
--name php \
|
||||||
-t devilbox/php-fpm:7.2-work
|
-t devilbox/php-fpm:7.2-work
|
||||||
|
|
||||||
@@ -1234,9 +1283,9 @@ $ docker exec -it php mysqldump-secure
|
|||||||
|
|
||||||
<h2><img id="automated-builds" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Automated builds</h2>
|
<h2><img id="automated-builds" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Automated builds</h2>
|
||||||
|
|
||||||
[](https://travis-ci.org/devilbox/docker-php-fpm)
|
[](https://github.com/devilbox/docker-php-fpm/actions?workflow=nightly)
|
||||||
|
|
||||||
Docker images are built and tested every night by **[travis-ci](https://travis-ci.org/devilbox/docker-php-fpm)** and pushed to **[Docker hub](https://hub.docker.com/r/devilbox/php-fpm/)** on success. This is all done automatically to ensure that sources as well as base images are always fresh and in case of security updates always have the latest patches.
|
Docker images are built and tested every night by **[GitHub Actions](https://github.com/devilbox/docker-php-fpm/actions?workflow=nightly)** and pushed to **[Docker hub](https://hub.docker.com/r/devilbox/php-fpm/)** on success. This is all done automatically to ensure that sources as well as base images are always fresh and in case of security updates always have the latest patches.
|
||||||
|
|
||||||
<h2><img id="contributing" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Contributing</h2>
|
<h2><img id="contributing" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Contributing</h2>
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
{{ edit_comment_base }}
|
||||||
{% if php_version == 5.2 %}
|
{% if php_version == 5.2 %}
|
||||||
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 == 7.4 %}
|
|
||||||
FROM devilbox/php-fpm-7.4
|
|
||||||
{% 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 %}
|
||||||
|
FROM devilbox/php-fpm-8.1
|
||||||
{% else %}
|
{% else %}
|
||||||
FROM php:{{ php_version }}-fpm
|
FROM php:{{ php_version }}-fpm
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -16,12 +16,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM {{ php_version }} Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="{{ php_version }}-base" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="{{ php_version }}-base"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-base"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-base"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -37,7 +45,7 @@ ENV MY_USER="devilbox" \
|
|||||||
###
|
###
|
||||||
### User/Group
|
### User/Group
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||||
|
|
||||||
@@ -45,7 +53,16 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -x \
|
{% if php_version in [5.2, 5.3, 5.4, 5.5] %}
|
||||||
|
RUN set -eux \
|
||||||
|
&& rm -f /etc/apt/sources.list \
|
||||||
|
&& { \
|
||||||
|
echo "deb http://ftp.debian.org/debian jessie main"; \
|
||||||
|
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
||||||
|
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
||||||
|
} | tee /etc/apt/sources.list
|
||||||
|
{% endif %}
|
||||||
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
&& 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/*
|
||||||
@@ -54,7 +71,7 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
### Configure
|
### Configure
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||||
&& mkdir -p /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/session \
|
||||||
@@ -77,7 +94,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -104,4 +121,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -1,24 +1,12 @@
|
|||||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
{{ edit_comment_mods }}
|
||||||
FROM devilbox/php-fpm:{{ php_version }}-base
|
FROM devilbox/php-fpm:{{ php_version }}-base as builder
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|
||||||
|
|
||||||
|
|
||||||
###
|
{#
|
||||||
### Labels
|
###################################################################################################
|
||||||
###
|
Loop over enabled build dependencies and gather build dependencies
|
||||||
LABEL \
|
###################################################################################################
|
||||||
name="cytopia's PHP-FPM {{ php_version }} Image" \
|
#}
|
||||||
image="devilbox/php-fpm" \
|
|
||||||
tag="{{ php_version }}-mods" \
|
|
||||||
vendor="devilbox" \
|
|
||||||
license="MIT"
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Envs
|
|
||||||
###
|
|
||||||
ENV BUILD_DEPS \
|
|
||||||
{# Loop over enabled build dependencies -#}
|
|
||||||
{%- set build_deps = [] -%}
|
{%- set build_deps = [] -%}
|
||||||
{%- for ext in extensions_enabled -%}
|
{%- for ext in extensions_enabled -%}
|
||||||
{#- Not disabled AND not already available by default -#}
|
{#- Not disabled AND not already available by default -#}
|
||||||
@@ -39,13 +27,314 @@ ENV BUILD_DEPS \
|
|||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endfor -%}
|
{%- endfor -%}
|
||||||
|
###
|
||||||
|
### Install
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
{% for build_dep in build_deps | unique | sort %}
|
{% for build_dep in build_deps | unique | sort %}
|
||||||
{{ build_dep }} \
|
{{ build_dep }} \
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git
|
git
|
||||||
|
|
||||||
ENV RUN_DEPS \
|
|
||||||
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
|
RUN set -eux \
|
||||||
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install and enable PHP modules
|
||||||
|
###
|
||||||
|
# Enable ffi if it exists
|
||||||
|
RUN set -eux \
|
||||||
|
&& if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \
|
||||||
|
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
{# Loop over enabled extensions #}
|
||||||
|
{% for ext in extensions_enabled %}
|
||||||
|
{#-
|
||||||
|
###############################################################################################
|
||||||
|
# Not disabled AND not already enabled
|
||||||
|
###############################################################################################
|
||||||
|
-#}
|
||||||
|
{%- if (('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled'])) and ('already_avail' not in extensions_available[ext] or php_version not in extensions_available[ext]['already_avail']) %}
|
||||||
|
# -------------------- Installing PHP Extension: {{ ext }} --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
{#-
|
||||||
|
# --------------------------------------------------------------------------------
|
||||||
|
# PRE COMMAND
|
||||||
|
# --------------------------------------------------------------------------------
|
||||||
|
-#}
|
||||||
|
{#- Version specific pre-command available? -#}
|
||||||
|
{%- if php_version in extensions_available[ext] and 'pre' in extensions_available[ext][php_version] -%}
|
||||||
|
{{- "\n\t" }}# Version specific pre-command
|
||||||
|
{{- "\n\t" }}&& {{ extensions_available[ext][php_version]['pre'] }} \
|
||||||
|
{#- Generic pre-command available? -#}
|
||||||
|
{%- elif 'all' in extensions_available[ext] and 'pre' in extensions_available[ext]['all'] %}
|
||||||
|
{{- "\n\t" }}# Generic pre-command
|
||||||
|
{{- "\n\t" }}&& {{ extensions_available[ext]['all']['pre'] }} \
|
||||||
|
{%- endif -%}
|
||||||
|
{#-
|
||||||
|
# --------------------------------------------------------------------------------
|
||||||
|
# INSTALLATION (VERSION SPECIFIC)
|
||||||
|
# --------------------------------------------------------------------------------
|
||||||
|
#}
|
||||||
|
{%- if php_version in extensions_available[ext] and 'type' in extensions_available[ext][php_version] -%}
|
||||||
|
{{- "\n\t" }}# Installation: Version specific
|
||||||
|
{#-
|
||||||
|
# -------------------- 1.) Builtin --------------------
|
||||||
|
-#}
|
||||||
|
{%- if extensions_available[ext][php_version]['type'] == 'builtin' -%}
|
||||||
|
{{- "\n\t" }}# Type: Built-in extension
|
||||||
|
{%- if 'configure' in extensions_available[ext][php_version] -%}
|
||||||
|
{{- "\n\t" }}# Custom: configure command
|
||||||
|
{{- "\n\t" }}&& docker-php-ext-configure {{ ext }} {{ extensions_available[ext][php_version]['configure'] }} \
|
||||||
|
{%- endif -%}
|
||||||
|
{{- "\n\t" }}# Installation
|
||||||
|
{{- "\n\t" }}&& docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
|
||||||
|
{#-
|
||||||
|
# -------------------- 2.) PECL --------------------
|
||||||
|
-#}
|
||||||
|
{%- elif extensions_available[ext][php_version]['type'] == 'pecl' -%}
|
||||||
|
{{- "\n\t" }}# Type: PECL extension
|
||||||
|
{%- if 'command' in extensions_available[ext][php_version] -%}
|
||||||
|
{{- "\n\t" }}# Custom: Pecl command
|
||||||
|
{{- "\n\t" }}&& {{ extensions_available[ext][php_version]['command'] }} \
|
||||||
|
{%- else -%}
|
||||||
|
{{- "\n\t" }}# Default: Pecl command
|
||||||
|
{{- "\n\t" }}&& pecl install {{ ext }}{% if 'version' in extensions_available[ext][php_version] %}-{{ extensions_available[ext][php_version]['version'] }}{% endif %} \
|
||||||
|
{%- endif -%}
|
||||||
|
{{- "\n\t" }}# Enabling
|
||||||
|
{{- "\n\t" }}&& docker-php-ext-enable {{ ext }} \
|
||||||
|
{#-
|
||||||
|
# -------------------- 3.) GIT --------------------
|
||||||
|
-#}
|
||||||
|
{%- elif extensions_available[ext][php_version]['type'] == 'git' -%}
|
||||||
|
{{- "\n\t" }}# Type: GIT extension
|
||||||
|
{{- "\n\t" }}&& git clone {{ extensions_available[ext][php_version]['git_url'] }} /tmp/{{ ext }} \
|
||||||
|
{{- "\n\t" }}&& cd /tmp/{{ ext }} \
|
||||||
|
{%- if 'git_ref' in extensions_available[ext][php_version] -%}
|
||||||
|
{{- "\n\t" }}# Custom: Branch
|
||||||
|
{{- "\n\t" }}&& git checkout {{ extensions_available[ext][php_version]['git_ref'] }} \
|
||||||
|
{%- endif -%}
|
||||||
|
{%- if 'command' in extensions_available[ext][php_version] -%}
|
||||||
|
{{- "\n\t" }}# Custom: Install command
|
||||||
|
{{- "\n\t" }}&& {{ extensions_available[ext][php_version]['command'] }} \
|
||||||
|
{%- else -%}
|
||||||
|
{{- "\n\t" }}# Default: Install command
|
||||||
|
{{- "\n\t" }}&& phpize \
|
||||||
|
{{- "\n\t" }}&& ./configure {% if 'configure' in extensions_available[ext][php_version] %} {{ extensions_available[ext][php_version]['configure'] }}{% endif %} \
|
||||||
|
{{- "\n\t" }}&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||||
|
{{- "\n\t" }}&& make install \
|
||||||
|
{%- endif -%}
|
||||||
|
{{- "\n\t" }}# Enabling
|
||||||
|
{{- "\n\t" }}&& docker-php-ext-enable {{ ext }} \
|
||||||
|
{#-
|
||||||
|
# -------------------- 4.) CUSTOM --------------------
|
||||||
|
-#}
|
||||||
|
{%- elif extensions_available[ext][php_version]['type'] == 'custom' -%}
|
||||||
|
{{- "\n\t" }}# Type: Custom extension
|
||||||
|
{{- "\n\t" }}&& {{ extensions_available[ext][php_version]['command'] }} \
|
||||||
|
{%- endif -%}
|
||||||
|
{#-
|
||||||
|
# --------------------------------------------------------------------------------
|
||||||
|
# INSTALLATION (GENERIC)
|
||||||
|
# --------------------------------------------------------------------------------
|
||||||
|
#}
|
||||||
|
{%- elif 'all' in extensions_available[ext] and 'type' in extensions_available[ext]['all'] -%}
|
||||||
|
{{- "\n\t" }}# Installation: Generic
|
||||||
|
{#-
|
||||||
|
# -------------------- 1.) Builtin --------------------
|
||||||
|
-#}
|
||||||
|
{%- if extensions_available[ext]['all']['type'] == 'builtin' -%}
|
||||||
|
{{- "\n\t" }}# Type: Built-in extension
|
||||||
|
{%- if 'configure' in extensions_available[ext]['all'] -%}
|
||||||
|
{{- "\n\t" }}# Custom: configure command
|
||||||
|
{{- "\n\t" }}&& docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \
|
||||||
|
{%- endif -%}
|
||||||
|
{{- "\n\t" }}&& docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
|
||||||
|
{#-
|
||||||
|
# -------------------- 2.) PECL --------------------
|
||||||
|
-#}
|
||||||
|
{%- elif extensions_available[ext]['all']['type'] == 'pecl' -%}
|
||||||
|
{{- "\n\t" }}# Type: PECL extension
|
||||||
|
{%- if 'command' in extensions_available[ext]['all'] -%}
|
||||||
|
{{- "\n\t" }}# Custom: Pecl command
|
||||||
|
{{- "\n\t" }}&& {{ extensions_available[ext]['all']['command'] }} \
|
||||||
|
{%- else -%}
|
||||||
|
{{- "\n\t" }}# Default: Pecl command
|
||||||
|
{{- "\n\t" }}&& pecl install {{ ext }}{% if 'version' in extensions_available[ext]['all'] %}-{{ extensions_available[ext]['all']['version'] }}{% endif %} \
|
||||||
|
{%- endif -%}
|
||||||
|
{{- "\n\t" }}# Enabling
|
||||||
|
{{- "\n\t" }}&& docker-php-ext-enable {{ ext }} \
|
||||||
|
{#-
|
||||||
|
# -------------------- 2.) GIT --------------------
|
||||||
|
-#}
|
||||||
|
{%- elif extensions_available[ext]['all']['type'] == 'git' -%}
|
||||||
|
{{- "\n\t" }}# Type: GIT extension
|
||||||
|
{{- "\n\t" }}&& git clone {{ extensions_available[ext]['all']['git_url'] }} /tmp/{{ ext }} \
|
||||||
|
{{- "\n\t" }}&& cd /tmp/{{ ext }} \
|
||||||
|
{%- if 'git_ref' in extensions_available[ext]['all'] -%}
|
||||||
|
{{- "\n\t" }}# Custom: Branch
|
||||||
|
{{- "\n\t" }}&& git checkout {{ extensions_available[ext]['all']['git_ref'] }} \
|
||||||
|
{%- endif -%}
|
||||||
|
{%- if 'command' in extensions_available[ext]['all'] -%}
|
||||||
|
{{- "\n\t" }}# Custom: Install command
|
||||||
|
{{- "\n\t" }}&& {{ extensions_available[ext]['all']['command'] }} \
|
||||||
|
{%- else -%}
|
||||||
|
{{- "\n\t" }}# Default: Install command
|
||||||
|
{{- "\n\t" }}&& phpize \
|
||||||
|
{{- "\n\t" }}&& ./configure {% if 'configure' in extensions_available[ext]['all'] %} {{ extensions_available[ext]['all']['configure'] }}{% endif %} \
|
||||||
|
{{- "\n\t" }}&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||||
|
{{- "\n\t" }}&& make install \
|
||||||
|
{%- endif -%}
|
||||||
|
{{- "\n\t" }}# Enabling
|
||||||
|
{{- "\n\t" }}&& docker-php-ext-enable {{ ext }} \
|
||||||
|
{#-
|
||||||
|
# -------------------- 4.) CUSTOM --------------------
|
||||||
|
-#}
|
||||||
|
{%- elif extensions_available[ext]['all']['type'] == 'custom' -%}
|
||||||
|
{{- "\n\t" }}# Type: Custom extension
|
||||||
|
{{- "\n\t" }}&& {{ extensions_available[ext]['all']['command'] }} \
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{#-
|
||||||
|
# --------------------------------------------------------------------------------
|
||||||
|
# POST COMMAND
|
||||||
|
# --------------------------------------------------------------------------------
|
||||||
|
-#}
|
||||||
|
{#- Version specific post-command available? -#}
|
||||||
|
{%- if php_version in extensions_available[ext] and 'post' in extensions_available[ext][php_version] -%}
|
||||||
|
{{- "\n\t" }}# Version specific post-command
|
||||||
|
{{- "\n\t" }}&& {{ extensions_available[ext][php_version]['post'] }} \
|
||||||
|
{#- Generic post-command available? -#}
|
||||||
|
{%- elif 'all' in extensions_available[ext] and 'post' in extensions_available[ext]['all'] %}
|
||||||
|
{{- "\n\t" }}# Generic post-command
|
||||||
|
{{- "\n\t" }}&& {{ extensions_available[ext]['all']['post'] }} \
|
||||||
|
{%- endif -%}
|
||||||
|
{#- End of: Not disabled AND not already enabled -#}
|
||||||
|
{%- endif -%}
|
||||||
|
{#-
|
||||||
|
###############################################################################################
|
||||||
|
# Ensure modules that are not disabled have an appropriate ini directive and are loaded
|
||||||
|
###############################################################################################
|
||||||
|
-#}
|
||||||
|
{%- if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) -%}
|
||||||
|
{%- if php_version in extensions_available[ext] and 'load_ext' in extensions_available[ext][php_version] -%}
|
||||||
|
{{- "\n\t" }}# Activate: Version specific extension
|
||||||
|
{{- "\n\t" }}&& if [ ! -f "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini" ]; then \
|
||||||
|
{{- "\n\t" }} echo "extension={{ extensions_available[ext][php_version]['load_ext'] }}" > "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini"; \
|
||||||
|
{{- "\n\t" }}fi \
|
||||||
|
{%- elif 'all' in extensions_available[ext] and 'load_ext' in extensions_available[ext]['all'] -%}
|
||||||
|
{{- "\n\t" }}# Activate: Generic extension
|
||||||
|
{{- "\n\t" }}&& if [ ! -f "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini" ]; then \
|
||||||
|
{{- "\n\t" }} echo "extenstion={{ extensions_available[ext]['all']['load_ext'] }}" > "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini"; \
|
||||||
|
{{- "\n\t" }}fi \
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endif %}
|
||||||
|
{#-
|
||||||
|
###############################################################################################
|
||||||
|
# Test extensions
|
||||||
|
###############################################################################################
|
||||||
|
-#}
|
||||||
|
{#- Not disabled #}
|
||||||
|
{%- if (('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled'])) and ('already_avail' not in extensions_available[ext] or php_version not in extensions_available[ext]['already_avail']) %}
|
||||||
|
{%- if build_fail_fast -%}
|
||||||
|
{{- "\n\t" }}# ---- Test extension ----
|
||||||
|
{{- "\n\t" }}&& /usr/local/sbin/php-fpm --test \
|
||||||
|
{{- "\n\t" }}\
|
||||||
|
{{- "\n\t" }}&& (php -v 2>&1 1>/dev/null || true) \
|
||||||
|
{{- "\n\t" }}&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||||
|
{{- "\n\t" }}&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||||
|
{{- "\n\t" }}&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||||
|
{{- "\n\t" }}&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||||
|
{{- "\n\t" }}\
|
||||||
|
{{- "\n\t" }}&& (php-fpm -v 2>&1 1>/dev/null || true) \
|
||||||
|
{{- "\n\t" }}&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||||
|
{{- "\n\t" }}&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||||
|
{{- "\n\t" }}&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||||
|
{{- "\n\t" }}&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||||
|
{{- "\n\t" }}\
|
||||||
|
{%- if ext == 'opcache' -%}
|
||||||
|
{{- "\n\t" }}&& php -m | grep -oiE '^Zend Opcache$' \
|
||||||
|
{{- "\n\t" }}&& php-fpm -m | grep -oiE '^Zend Opcache$'
|
||||||
|
{%- elif ext == 'readline' -%}
|
||||||
|
{{- "\n\t" }}&& php -m | grep -oiE '^readline$'
|
||||||
|
{%- elif ext not in ['blackfire', 'ioncube'] -%}
|
||||||
|
{{- "\n\t" }}&& php -m | grep -oiE '^{{ ext }}$' \
|
||||||
|
{{- "\n\t" }}&& php-fpm -m | grep -oiE '^{{ ext }}$'
|
||||||
|
{%- else %}
|
||||||
|
{{- "\n\t" }}&& true
|
||||||
|
{%- endif %}
|
||||||
|
{{- "\n\n\n" }}
|
||||||
|
{%- else -%}
|
||||||
|
{{- "\n\t" }}&& true{{ "\n\n\n" }}
|
||||||
|
{%- endif %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- endfor %}
|
||||||
|
|
||||||
|
|
||||||
|
# Fix php.ini settings for enabled extensions
|
||||||
|
RUN set -eux \
|
||||||
|
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||||
|
|
||||||
|
# Fix oracle dir for images that don't have oci installed
|
||||||
|
RUN set -eux \
|
||||||
|
&& mkdir -p /usr/lib/oracle/
|
||||||
|
|
||||||
|
# Shrink everything down
|
||||||
|
RUN set -eux \
|
||||||
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{{ edit_comment_mods }}
|
||||||
|
FROM devilbox/php-fpm:{{ php_version }}-base as final
|
||||||
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
###
|
||||||
|
### Labels
|
||||||
|
###
|
||||||
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="{{ php_version }}-mods"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-mods"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-mods"
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### 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/
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
{# 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 -%}
|
||||||
@@ -69,145 +358,44 @@ ENV RUN_DEPS \
|
|||||||
{% for run_dep in run_deps | unique | sort %}
|
{% for run_dep in run_deps | unique | sort %}
|
||||||
{{ run_dep }} \
|
{{ run_dep }} \
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
ca-certificates
|
ca-certificates \
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Install
|
|
||||||
###
|
|
||||||
RUN set -x \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
${BUILD_DEPS} \
|
|
||||||
\
|
|
||||||
\
|
|
||||||
{# Loop over enabled extensions #}
|
|
||||||
{% for ext in extensions_enabled %}
|
|
||||||
{# Not disabled AND not already enabled #}
|
|
||||||
{% if (('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled'])) and ('already_avail' not in extensions_available[ext] or php_version not in extensions_available[ext]['already_avail']) %}
|
|
||||||
# ---- Installing PHP Extension: {{ ext }} ----
|
|
||||||
{# ---------- Pre Command ---------- #}
|
|
||||||
{# Version specific pre-command available? #}
|
|
||||||
{% if php_version in extensions_available[ext] and 'pre' in extensions_available[ext][php_version] %}
|
|
||||||
&& {{ extensions_available[ext][php_version]['pre'] }} \
|
|
||||||
{# Generic pre-command available? #}
|
|
||||||
{% elif 'all' in extensions_available[ext] and 'pre' in extensions_available[ext]['all'] %}
|
|
||||||
&& {{ extensions_available[ext]['all']['pre'] }} \
|
|
||||||
{% endif %}
|
|
||||||
{# ---------- Installation (specific) ---------- #}
|
|
||||||
{% if php_version in extensions_available[ext] and 'type' in extensions_available[ext][php_version] %}
|
|
||||||
{# ---- 1.) Builtin ---- #}
|
|
||||||
{% if extensions_available[ext][php_version]['type'] == 'builtin' %}
|
|
||||||
{% if 'configure' in extensions_available[ext][php_version] %}
|
|
||||||
&& /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext][php_version]['configure'] }} \
|
|
||||||
{% endif %}
|
|
||||||
&& /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
|
|
||||||
{# ---- 2.) PECL ---- #}
|
|
||||||
{% elif extensions_available[ext][php_version]['type'] == 'pecl' %}
|
|
||||||
{% if 'command' in extensions_available[ext][php_version] %}
|
|
||||||
&& {{ extensions_available[ext][php_version]['command'] }} \
|
|
||||||
{% else %}
|
|
||||||
&& pecl install {{ ext }}{% if 'version' in extensions_available[ext][php_version] %}-{{ extensions_available[ext][php_version]['version'] }}{% endif %} \
|
|
||||||
{% endif %}
|
|
||||||
&& docker-php-ext-enable {{ ext }} \
|
|
||||||
{# ---- 3.) GIT ---- #}
|
|
||||||
{% elif extensions_available[ext][php_version]['type'] == 'git' %}
|
|
||||||
&& git clone {{ extensions_available[ext][php_version]['git_url'] }} /tmp/{{ ext }} \
|
|
||||||
&& cd /tmp/{{ ext }} \
|
|
||||||
{% if 'git_ref' in extensions_available[ext][php_version] %}
|
|
||||||
&& git checkout {{ extensions_available[ext][php_version]['git_ref'] }} \
|
|
||||||
{% endif %}
|
|
||||||
{% if 'command' in extensions_available[ext][php_version] %}
|
|
||||||
&& {{ extensions_available[ext][php_version]['command'] }} \
|
|
||||||
{% else %}
|
|
||||||
&& phpize \
|
|
||||||
&& ./configure {% if 'configure' in extensions_available[ext][php_version] %} {{ extensions_available[ext][php_version]['configure'] }}{% endif %} \
|
|
||||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
|
||||||
&& make install \
|
|
||||||
{% endif %}
|
|
||||||
&& docker-php-ext-enable {{ ext }} \
|
|
||||||
{# ---- 4.) CUSTOM ---- #}
|
|
||||||
{% elif extensions_available[ext][php_version]['type'] == 'custom' %}
|
|
||||||
&& {{ extensions_available[ext][php_version]['command'] }} \
|
|
||||||
{% endif %}
|
|
||||||
{# ---------- Installation (generic) ---------- #}
|
|
||||||
{% elif 'all' in extensions_available[ext] and 'type' in extensions_available[ext]['all'] %}
|
|
||||||
{# ---- 1.) Builtin ---- #}
|
|
||||||
{% if extensions_available[ext]['all']['type'] == 'builtin' %}
|
|
||||||
{% if 'configure' in extensions_available[ext]['all'] %}
|
|
||||||
&& /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \
|
|
||||||
{% endif %}
|
|
||||||
&& /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
|
|
||||||
{# ---- 2.) PECL ---- #}
|
|
||||||
{% elif extensions_available[ext]['all']['type'] == 'pecl' %}
|
|
||||||
{% if 'command' in extensions_available[ext]['all'] %}
|
|
||||||
&& {{ extensions_available[ext]['all']['command'] }} \
|
|
||||||
{% else %}
|
|
||||||
&& pecl install {{ ext }}{% if 'version' in extensions_available[ext]['all'] %}-{{ extensions_available[ext]['all']['version'] }}{% endif %} \
|
|
||||||
{% endif %}
|
|
||||||
&& docker-php-ext-enable {{ ext }} \
|
|
||||||
{# ---- 3.) GIT ---- #}
|
|
||||||
{% elif extensions_available[ext]['all']['type'] == 'git' %}
|
|
||||||
&& git clone {{ extensions_available[ext]['all']['git_url'] }} /tmp/{{ ext }} \
|
|
||||||
&& cd /tmp/{{ ext }} \
|
|
||||||
{% if 'git_ref' in extensions_available[ext]['all'] %}
|
|
||||||
&& git checkout {{ extensions_available[ext]['all']['git_ref'] }} \
|
|
||||||
{% endif %}
|
|
||||||
{% if 'command' in extensions_available[ext]['all'] %}
|
|
||||||
&& {{ extensions_available[ext]['all']['command'] }} \
|
|
||||||
{% else %}
|
|
||||||
&& phpize \
|
|
||||||
&& ./configure {% if 'configure' in extensions_available[ext]['all'] %} {{ extensions_available[ext]['all']['configure'] }}{% endif %} \
|
|
||||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
|
||||||
&& make install \
|
|
||||||
{% endif %}
|
|
||||||
&& docker-php-ext-enable {{ ext }} \
|
|
||||||
{# ---- 4.) CUSTOM ---- #}
|
|
||||||
{% elif extensions_available[ext]['all']['type'] == 'custom' %}
|
|
||||||
&& {{ extensions_available[ext]['all']['command'] }} \
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
{# Only delete files for extensions we've actually installed, not those that were already available by default #}
|
|
||||||
&& (rm -rf /usr/local/lib/php/test/{{ ext }} || true) \
|
|
||||||
&& (rm -rf /usr/local/lib/php/doc/{{ ext }} || true) \
|
|
||||||
\
|
|
||||||
{% endif %}
|
|
||||||
{# Ensure modules that are not disabled have an appropriate ini directive and are loaded #}
|
|
||||||
{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %}
|
|
||||||
{% if php_version in extensions_available[ext] and 'load_ext' in extensions_available[ext][php_version] %}
|
|
||||||
&& if [ ! -f "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini" ]; then echo "extension={{ extensions_available[ext][php_version]['load_ext'] }}" > "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini"; fi \
|
|
||||||
{% elif 'all' in extensions_available[ext] and 'load_ext' in extensions_available[ext]['all'] %}
|
|
||||||
&& if [ ! -f "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini" ]; then echo "extenstion={{ extensions_available[ext]['all']['load_ext'] }}" > "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini"; fi \
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
{# Fix php.ini settings for enabled extensions #}
|
|
||||||
&& if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \
|
|
||||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
|
||||||
fi \
|
|
||||||
{# /Fix php.ini settings for enabled extensions #}
|
|
||||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \
|
|
||||||
&& rm -rf /tmp/* \
|
|
||||||
\
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& update-ca-certificates \
|
&& update-ca-certificates
|
||||||
\
|
|
||||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
###
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
### Post Install
|
||||||
&& (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
###
|
||||||
|
{# Loop over enabled extensions #}
|
||||||
|
{%- set post_commands = {} -%}
|
||||||
|
{% for ext in extensions_enabled %}
|
||||||
|
{%- if (('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled'])) and ('already_avail' not in extensions_available[ext] or php_version not in extensions_available[ext]['already_avail']) %}
|
||||||
|
{#- Version specific post-command available? -#}
|
||||||
|
{%- if php_version in extensions_available[ext] and 'post' in extensions_available[ext][php_version] -%}
|
||||||
|
{{- post_commands.update({ext: extensions_available[ext][php_version]['post']}) -}}
|
||||||
|
{#- Generic post-command available? -#}
|
||||||
|
{%- elif 'all' in extensions_available[ext] and 'post' in extensions_available[ext]['all'] %}
|
||||||
|
{{- post_commands.update({ext: extensions_available[ext]['all']['post']}) -}}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
|
||||||
|
{% if post_commands | length > 0 -%}
|
||||||
|
RUN set -eux \
|
||||||
|
{%- for ext in post_commands -%}
|
||||||
|
{{- "\n\t" }}# ---------- {{ ext }} ----------
|
||||||
|
{{- "\n\t" }}&& {{ post_commands[ext] }} \
|
||||||
|
{%- endfor -%}
|
||||||
|
{{- "\n\t" }}&& true{{- "\n\n\n" }}
|
||||||
|
{%- endif -%}
|
||||||
|
|
||||||
|
|
||||||
{% if debug %}
|
{% if debug %}
|
||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -253,4 +441,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/local/sbin/php-fpm"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
{{ edit_comment_prod }}
|
||||||
FROM devilbox/php-fpm:{{ php_version }}-mods
|
FROM devilbox/php-fpm:{{ php_version }}-mods
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
@@ -6,18 +6,26 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM {{ php_version }} Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="{{ php_version }}-prod" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="{{ php_version }}-prod"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-prod"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-prod"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
@@ -32,20 +40,21 @@ RUN set -x \
|
|||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& rm -rf /etc/supervisor* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
|
||||||
&& mkdir -p /var/log/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 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{% if debug %}
|
{% if debug %}
|
||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -79,7 +88,6 @@ VOLUME /var/log/php
|
|||||||
VOLUME /var/mail
|
VOLUME /var/mail
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Ports
|
### Ports
|
||||||
###
|
###
|
||||||
@@ -89,4 +97,5 @@ EXPOSE 9000
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
{{ edit_comment_work }}
|
||||||
FROM devilbox/php-fpm:{{ php_version }}-prod
|
FROM devilbox/php-fpm:{{ php_version }}-prod
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
|||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
###
|
###
|
||||||
LABEL \
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
name="cytopia's PHP-FPM {{ php_version }} Image" \
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
image="devilbox/php-fpm" \
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
tag="{{ php_version }}-work" \
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
vendor="devilbox" \
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
license="MIT"
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="{{ php_version }}-work"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-work"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-work"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -23,45 +31,40 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
###
|
###
|
||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& 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 apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
{% for repo in apt_repositories_enabled -%}
|
\
|
||||||
|
{%- for repo in apt_repositories_enabled -%}
|
||||||
{#- Not disabled -#}
|
{#- Not disabled -#}
|
||||||
{%- if ('disabled' not in apt_repositories_available[repo]) or (php_version not in apt_repositories_available[repo]['disabled']) -%}
|
{%- if ('disabled' not in apt_repositories_available[repo]) or (php_version not in apt_repositories_available[repo]['disabled']) -%}
|
||||||
{#- Version specific pre-command available? -#}
|
{#- Version specific pre-command available? -#}
|
||||||
{%- if php_version in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo][php_version] %}
|
{%- if php_version in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo][php_version] -%}
|
||||||
&& {{ apt_repositories_available[repo][php_version]['pre'] }} \
|
{{ "\n\t" }}&& {{ apt_repositories_available[repo][php_version]['pre'] }} \
|
||||||
{# #}
|
|
||||||
{#- Generic pre-command available? -#}
|
{#- Generic pre-command available? -#}
|
||||||
{%- elif 'all' in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo]['all'] %}
|
{%- elif 'all' in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo]['all'] -%}
|
||||||
&& {{ apt_repositories_available[repo]['all']['pre'] }} \
|
{{ "\n\t" }}&& {{ apt_repositories_available[repo]['all']['pre'] }} \
|
||||||
{# #}
|
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{#- Version specific key available? -#}
|
{#- Version specific key available? -#}
|
||||||
{%- if php_version in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo][php_version] %}
|
{%- if php_version in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo][php_version] -%}
|
||||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo][php_version]['key'] }} \
|
{{ "\n\t" }}&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo][php_version]['key'] }} \
|
||||||
{# #}
|
|
||||||
{#- Generic key available? -#}
|
{#- Generic key available? -#}
|
||||||
{%- elif 'all' in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo]['all'] %}
|
{%- elif 'all' in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo]['all'] -%}
|
||||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo]['all']['key'] }} \
|
{{ "\n\t" }}&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo]['all']['key'] }} \
|
||||||
{# #}
|
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{#- Version specific repository available? -#}
|
{#- Version specific repository available? -#}
|
||||||
{%- if php_version in apt_repositories_available[repo] and 'deb' in apt_repositories_available[repo][php_version] %}
|
{%- if php_version in apt_repositories_available[repo] and 'deb' in apt_repositories_available[repo][php_version] -%}
|
||||||
&& echo "{{ apt_repositories_available[repo][php_version]['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \
|
{{ "\n\t" }}&& echo "{{ apt_repositories_available[repo][php_version]['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \
|
||||||
{# #}
|
|
||||||
{#- Generic repository available? -#}
|
{#- Generic repository available? -#}
|
||||||
{%- else %}
|
{%- elif 'all' in apt_repositories_available[repo] and 'deb' in apt_repositories_available[repo]['all'] -%}
|
||||||
&& echo "{{ apt_repositories_available[repo]['all']['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \
|
{{ "\n\t" }}&& echo "{{ apt_repositories_available[repo]['all']['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \
|
||||||
{# #}
|
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endfor %}
|
{%- endfor -%}{{ "\n\t" }}\
|
||||||
&& 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 \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
@@ -73,6 +76,9 @@ RUN set -x \
|
|||||||
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 %}
|
||||||
|
certbot \
|
||||||
|
{% endif %}
|
||||||
coreutils \
|
coreutils \
|
||||||
dnsutils \
|
dnsutils \
|
||||||
dos2unix \
|
dos2unix \
|
||||||
@@ -82,7 +88,9 @@ RUN set -x \
|
|||||||
git \
|
git \
|
||||||
git-flow \
|
git-flow \
|
||||||
git-svn \
|
git-svn \
|
||||||
|
ghostscript \
|
||||||
graphviz \
|
graphviz \
|
||||||
|
gsfonts \
|
||||||
hostname \
|
hostname \
|
||||||
htop \
|
htop \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
@@ -90,26 +98,28 @@ RUN set -x \
|
|||||||
jq \
|
jq \
|
||||||
less \
|
less \
|
||||||
libc-dev \
|
libc-dev \
|
||||||
libffi-dev\
|
libffi-dev \
|
||||||
libssl-dev\
|
libssl-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
mongodb-org-shell \
|
||||||
mongodb-org-tools \
|
mongodb-org-tools \
|
||||||
moreutils \
|
moreutils \
|
||||||
|
{% if php_version in [7.1, 7.2, 7.3, 7.4, 8.0, 8.1] %}
|
||||||
|
mariadb-client \
|
||||||
|
{% else %}
|
||||||
mysql-client \
|
mysql-client \
|
||||||
|
{% endif %}
|
||||||
|
mupdf \
|
||||||
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
net-tools \
|
net-tools \
|
||||||
netcat \
|
netcat \
|
||||||
nodejs \
|
|
||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
postgresql-client \
|
||||||
python-cffi \
|
|
||||||
python-dev \
|
|
||||||
python-pip \
|
|
||||||
python-wheel \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
@@ -125,54 +135,291 @@ RUN set -x \
|
|||||||
w3m \
|
w3m \
|
||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
wkhtmltopdf \
|
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
yarn \
|
||||||
zip \
|
zip \
|
||||||
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
|
{% if php_version in [5.6, 7.0] %}
|
||||||
|
zsh-common \
|
||||||
|
{% endif %}
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& 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/* \
|
||||||
\
|
\
|
||||||
# Get newer pip version
|
|
||||||
&& pip install --upgrade pip \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
RUN set -x \
|
###
|
||||||
{% for tool in software_enabled %}
|
### Install custom software
|
||||||
{# Not disabled #}
|
###
|
||||||
{% if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) %}
|
{% if not build_fail_fast %}
|
||||||
# {{ tool }}
|
RUN set -eux \
|
||||||
{# Version specific pre-command available? #}
|
{%- endif -%}
|
||||||
{% if php_version in software_available[tool] and 'pre' in software_available[tool][php_version] %}
|
{%- for tool in software_enabled -%}
|
||||||
&& {{ software_available[tool][php_version]['pre'] }} \
|
{# Not disabled #}
|
||||||
{# Generic pre-command available? #}
|
{%- if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) -%}
|
||||||
{% elif 'all' in software_available[tool] and 'pre' in software_available[tool]['all'] %}
|
{{ "\n" }}# -------------------- {{ tool }} --------------------
|
||||||
&& {{ software_available[tool]['all']['pre'] }} \
|
{%- if build_fail_fast -%}
|
||||||
{% endif %}
|
{{ "\n" }}RUN set -eux \
|
||||||
{# Version specific command available? #}
|
{%- endif -%}
|
||||||
{% if php_version in software_available[tool] and 'command' in software_available[tool][php_version] %}
|
{#- Version specific pre-command available? -#}
|
||||||
&& {{ software_available[tool][php_version]['command'] }} \
|
{%- if php_version in software_available[tool] and 'pre' in software_available[tool][php_version] -%}
|
||||||
{# Generic command available? #}
|
{{ "\n\t" }}&& {{ software_available[tool][php_version]['pre'] }} \
|
||||||
{% else %}
|
{#- Generic pre-command available? -#}
|
||||||
&& {{ software_available[tool]['all']['command'] }} \
|
{%- elif 'all' in software_available[tool] and 'pre' in software_available[tool]['all'] -%}
|
||||||
{% endif %}
|
{{ "\n\t" }}&& {{ software_available[tool]['all']['pre'] }} \
|
||||||
{# Version specific post-command available? #}
|
{%- endif -%}
|
||||||
{% if php_version in software_available[tool] and 'post' in software_available[tool][php_version] %}
|
{#- Version specific command available? -#}
|
||||||
&& {{ software_available[tool][php_version]['post'] }} \
|
{%- if php_version in software_available[tool] and 'command' in software_available[tool][php_version] -%}
|
||||||
{# Generic post-command available? #}
|
{{ "\n\t" }}&& {{ software_available[tool][php_version]['command'] }} \
|
||||||
{% elif 'all' in software_available[tool] and 'post' in software_available[tool]['all'] %}
|
{#- Generic command available? -#}
|
||||||
&& {{ software_available[tool]['all']['post'] }} \
|
{%- else -%}
|
||||||
{% endif %}
|
{{ "\n\t" }}&& {{ software_available[tool]['all']['command'] }} \
|
||||||
{% endif %}
|
{%- endif -%}
|
||||||
{% endfor %}
|
{#- Version specific post-command available? -#}
|
||||||
|
{%- if php_version in software_available[tool] and 'post' in software_available[tool][php_version] -%}
|
||||||
|
{{ "\n\t" }}&& {{ software_available[tool][php_version]['post'] }} \
|
||||||
|
{#- Generic post-command available? -#}
|
||||||
|
{%- elif 'all' in software_available[tool] and 'post' in software_available[tool]['all'] -%}
|
||||||
|
{{ "\n\t" }}&& {{ software_available[tool]['all']['post'] }} \
|
||||||
|
{%- endif -%}
|
||||||
|
{#- Fail fast version -#}
|
||||||
|
{%- if build_fail_fast -%}
|
||||||
|
{%- if 'check' in software_available[tool] -%}
|
||||||
|
{{ "\n\t" }}&& {{ software_available[tool]['check'] }}{{ "\n\n" }}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}&& true{{ "\n\n" }}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}\
|
||||||
|
{%- endif -%}
|
||||||
|
{#- end of Fail fast version -#}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
{% if build_fail_fast -%}
|
||||||
|
RUN set -eux \{{ "\n" }}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}\{{ "\n" }}
|
||||||
|
{%- endif %}
|
||||||
|
&& (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 /usr/local/src/composer/cache/* || true) \
|
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Composer (PHP)
|
||||||
|
###
|
||||||
|
{% if not build_fail_fast %}
|
||||||
|
RUN set -eux \
|
||||||
|
{%- endif -%}
|
||||||
|
{%- for tool in composer_enabled -%}
|
||||||
|
{#- Not disabled -#}
|
||||||
|
{%- if ('disabled' not in composer_available[tool]) or (php_version not in composer_available[tool]['disabled']) -%}
|
||||||
|
{{ "\n" }}# -------------------- {{ tool }} --------------------
|
||||||
|
{%- if build_fail_fast -%}
|
||||||
|
{{ "\n" }}RUN set -eux \
|
||||||
|
{%- endif -%}
|
||||||
|
{#- Version specific gem version available? -#}
|
||||||
|
{%- if php_version in composer_available[tool] and 'version' in composer_available[tool][php_version] -%}
|
||||||
|
{{ "\n\t" }}&& COMPOSER_HOME="{{ composer_home }}" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-{{ composer_available[tool]['version'] }} global require {{ composer_available[tool]['name'] }}:{{ composer_available[tool][php_version]['version'] }} \
|
||||||
|
{#- Generic gem version available? -#}
|
||||||
|
{%- elif 'all' in composer_available[tool] and 'version' in composer_available[tool]['all'] -%}
|
||||||
|
{{ "\n\t" }}&& COMPOSER_HOME="{{ composer_home }}" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-{{ composer_available[tool]['version'] }} global require {{ composer_available[tool]['name'] }}:{{ composer_available[tool]['all']['version'] }} \
|
||||||
|
{#- No version info available -#}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}&& COMPOSER_HOME="{{ composer_home }}" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-{{ composer_available[tool]['version'] }} global require {{ composer_available[tool]['name'] }} \
|
||||||
|
{%- endif -%}
|
||||||
|
{#- Symlinks available? -#}
|
||||||
|
{%- if 'link' in composer_available[tool] -%}
|
||||||
|
{{ "\n\t" }}&& ln -s {{ composer_home }}/vendor/{{ composer_available[tool]['name'] }}/{{ composer_available[tool]['link'] }} /usr/local/bin/ \
|
||||||
|
{%- endif -%}
|
||||||
|
{#- Fail fast version -#}
|
||||||
|
{%- if build_fail_fast -%}
|
||||||
|
{%- if 'check' in composer_available[tool] -%}
|
||||||
|
{{ "\n\t" }}&& {{ composer_available[tool]['check'] }}{{ "\n\n" }}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}&& true{{ "\n\n" }}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}\
|
||||||
|
{%- endif -%}
|
||||||
|
{#- end of Fail fast version -#}
|
||||||
|
{%- endif -%}
|
||||||
|
{% endfor %}
|
||||||
|
{% if build_fail_fast -%}
|
||||||
|
RUN set -eux \{{ "\n" }}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}\{{ "\n" }}
|
||||||
|
{%- endif %}
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install npm (Node)
|
||||||
|
###
|
||||||
|
{% if not build_fail_fast %}
|
||||||
|
RUN set -eux \
|
||||||
|
{%- endif -%}
|
||||||
|
{%- for tool in npm_enabled -%}
|
||||||
|
{#- Not disabled -#}
|
||||||
|
{%- if ('disabled' not in npm_available[tool]) or (php_version not in npm_available[tool]['disabled']) -%}
|
||||||
|
{{ "\n" }}# -------------------- {{ tool }} --------------------
|
||||||
|
{%- if build_fail_fast -%}
|
||||||
|
{{ "\n" }}RUN set -eux \
|
||||||
|
{%- endif -%}
|
||||||
|
{#- Version specific gem version available? -#}
|
||||||
|
{%- if php_version in npm_available[tool] and 'version' in npm_available[tool][php_version] -%}
|
||||||
|
{{ "\n\t" }}&& su -c '. /opt/nvm/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }} {{ npm_available[tool][php_version]['version'] }}' devilbox \
|
||||||
|
{#- Generic gem version available? -#}
|
||||||
|
{%- elif 'all' in npm_available[tool] and 'version' in npm_available[tool]['all'] -%}
|
||||||
|
{{ "\n\t" }}&& su -c '. /opt/nvm/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }} {{ npm_available[tool]['all']['version'] }}' devilbox \
|
||||||
|
{#- No version info available -#}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}&& su -c '. /opt/nvm/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }}' devilbox \
|
||||||
|
{%- endif -%}
|
||||||
|
{#- Fail fast version -#}
|
||||||
|
{%- if build_fail_fast -%}
|
||||||
|
{%- if 'check' in npm_available[tool] -%}
|
||||||
|
{{ "\n\t" }}&& PATH=$PATH:/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" }}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}&& true{{ "\n\n" }}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}\
|
||||||
|
{%- endif -%}
|
||||||
|
{#- end of Fail fast version -#}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
{% if build_fail_fast -%}
|
||||||
|
RUN set -eux \{{ "\n" }}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}\{{ "\n" }}
|
||||||
|
{%- endif %}
|
||||||
|
&& 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 \
|
||||||
|
&& rm -rf /home/devilbox/.npm \
|
||||||
|
&& rm -rf /home/devilbox/.cache \
|
||||||
|
&& rm -rf /home/devilbox/.config \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install gem (Ruby)
|
||||||
|
###
|
||||||
|
{% if not build_fail_fast %}
|
||||||
|
RUN set -eux \
|
||||||
|
{%- endif -%}
|
||||||
|
{%- for tool in gem_enabled -%}
|
||||||
|
{#- Not disabled -#}
|
||||||
|
{%- if ('disabled' not in gem_available[tool]) or (php_version not in gem_available[tool]['disabled']) -%}
|
||||||
|
{{ "\n" }}# -------------------- {{ tool }} --------------------
|
||||||
|
{%- if build_fail_fast -%}
|
||||||
|
{{ "\n" }}RUN set -eux \
|
||||||
|
{%- endif -%}
|
||||||
|
{#- Version specific gem version available? -#}
|
||||||
|
{%- if php_version in gem_available[tool] and 'version' in gem_available[tool][php_version] -%}
|
||||||
|
{{ "\n\t" }}&& gem install {{ gem_available[tool]['name'] }} -v {{ gem_available[tool][php_version]['version'] }} \
|
||||||
|
{#- Generic gem version available? -#}
|
||||||
|
{%- elif 'all' in gem_available[tool] and 'version' in gem_available[tool]['all'] -%}
|
||||||
|
{{ "\n\t" }}&& gem install {{ gem_available[tool]['name'] }} -v {{ gem_available[tool]['all']['version'] }} \
|
||||||
|
{#- No version info available -#}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}&& gem install {{ gem_available[tool]['name'] }} \
|
||||||
|
{%- endif -%}
|
||||||
|
{#- Fail fast version -#}
|
||||||
|
{%- if build_fail_fast -%}
|
||||||
|
{%- if 'check' in gem_available[tool] -%}
|
||||||
|
{{ "\n\t" }}&& {{ gem_available[tool]['check'] }}{{ "\n\n" }}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}&& true{{ "\n\n" }}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}\
|
||||||
|
{%- endif -%}
|
||||||
|
{#- end of Fail fast version -#}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
{% if build_fail_fast -%}
|
||||||
|
RUN set -eux \{{ "\n" }}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}\{{ "\n" }}
|
||||||
|
{%- endif %}
|
||||||
|
&& rm -rf /root/.gem \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install pip (Python) packages
|
||||||
|
###
|
||||||
|
{% if not build_fail_fast %}
|
||||||
|
RUN set -eux \
|
||||||
|
{%- endif -%}
|
||||||
|
{%- for tool in pip_enabled -%}
|
||||||
|
{#- Not disabled -#}
|
||||||
|
{%- if ('disabled' not in pip_available[tool]) or (php_version not in pip_available[tool]['disabled']) -%}
|
||||||
|
{{ "\n" }}# -------------------- {{ tool }} --------------------
|
||||||
|
{%- if build_fail_fast -%}
|
||||||
|
{{ "\n" }}RUN set -eux \
|
||||||
|
{%- endif -%}
|
||||||
|
{#- Version specific gem version available? -#}
|
||||||
|
{%- if php_version in pip_available[tool] and 'version' in pip_available[tool][php_version] -%}
|
||||||
|
{{ "\n\t" }}&& pip install --no-cache-dir --force-reinstall {{ pip_available[tool]['name'] }}=={{ pip_available[tool][php_version]['version'] }} || true \
|
||||||
|
{#- Generic gem version available? -#}
|
||||||
|
{%- elif 'all' in pip_available[tool] and 'version' in pip_available[tool]['all'] -%}
|
||||||
|
{{ "\n\t" }}&& pip install --no-cache-dir --force-reinstall {{ pip_available[tool]['name'] }}=={{ pip_available[tool]['all']['version'] }} || true \
|
||||||
|
{#- No version info available -#}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}&& pip install --no-cache-dir --force-reinstall {{ pip_available[tool]['name'] }} || true \
|
||||||
|
{%- endif -%}
|
||||||
|
{#- Fail fast version -#}
|
||||||
|
{%- if build_fail_fast -%}
|
||||||
|
{%- if 'check' in pip_available[tool] -%}
|
||||||
|
{{ "\n\t" }}&& {{ pip_available[tool]['check'] }}{{ "\n\n" }}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}&& true{{ "\n\n" }}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}\
|
||||||
|
{%- endif -%}
|
||||||
|
{#- end of Fail fast version -#}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
{% if build_fail_fast -%}
|
||||||
|
RUN set -eux \{{ "\n" }}
|
||||||
|
{%- else -%}
|
||||||
|
{{ "\n\t" }}\{{ "\n" }}
|
||||||
|
{%- endif %}
|
||||||
|
&& rm -rf /root/.cache/pip \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (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 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 strip --strip-all -p 2>/dev/null || true) \
|
||||||
@@ -184,7 +431,10 @@ RUN set -x \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
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}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
||||||
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"; \
|
||||||
@@ -203,7 +453,7 @@ RUN \
|
|||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
###
|
###
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
||||||
&& /usr/local/sbin/php-fpm --test \
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
@@ -219,16 +469,62 @@ RUN set -x \
|
|||||||
&& 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
|
||||||
|
|
||||||
RUN set -x \
|
RUN set -eux \
|
||||||
{% for tool in software_enabled %}
|
# -------------------- Software --------------------
|
||||||
{# Not disabled #}
|
{%- for tool in software_enabled -%}
|
||||||
{% if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) %}
|
{#- Not disabled -#}
|
||||||
{% if 'check' in software_available[tool] %}
|
{%- if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) -%}
|
||||||
&& {{ software_available[tool]['check'] }} \
|
{%- if 'check' in software_available[tool] -%}
|
||||||
{% endif %}
|
{{ "\n\t" }}&& {{ software_available[tool]['check'] }} \
|
||||||
{% endif %}
|
{%- endif -%}
|
||||||
{% endfor %}
|
{%- endif -%}
|
||||||
&& true
|
{%- endfor -%}{{ "\n\t" }}\
|
||||||
|
# -------------------- Composer --------------------
|
||||||
|
{%- for tool in composer_enabled -%}
|
||||||
|
{#- Not disabled -#}
|
||||||
|
{%- if ('disabled' not in composer_available[tool]) or (php_version not in composer_available[tool]['disabled']) -%}
|
||||||
|
{%- if 'check' in composer_available[tool] -%}
|
||||||
|
{{ "\n\t" }}&& {{ composer_available[tool]['check'] }} \
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor -%}{{ "\n\t" }}\
|
||||||
|
# -------------------- PIP --------------------
|
||||||
|
{%- for tool in pip_enabled -%}
|
||||||
|
{#- Not disabled -#}
|
||||||
|
{%- if ('disabled' not in pip_available[tool]) or (php_version not in pip_available[tool]['disabled']) -%}
|
||||||
|
{%- if 'check' in pip_available[tool] -%}
|
||||||
|
{{ "\n\t" }}&& {{ pip_available[tool]['check'] }} \
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor -%}{{ "\n\t" }}\
|
||||||
|
# -------------------- NPM --------------------
|
||||||
|
{%- for tool in npm_enabled -%}
|
||||||
|
{#- Not disabled -#}
|
||||||
|
{%- if ('disabled' not in npm_available[tool]) or (php_version not in npm_available[tool]['disabled']) -%}
|
||||||
|
{%- if 'check' in npm_available[tool] -%}
|
||||||
|
{{ "\n\t" }}&& {{ npm_available[tool]['check'] }} \
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor -%}{{ "\n\t" }}\
|
||||||
|
# -------------------- GEM --------------------
|
||||||
|
{%- for tool in gem_enabled -%}
|
||||||
|
{#- Not disabled -#}
|
||||||
|
{%- if ('disabled' not in gem_available[tool]) or (php_version not in gem_available[tool]['disabled']) -%}
|
||||||
|
{%- if 'check' in gem_available[tool] -%}
|
||||||
|
{{ "\n\t" }}&& {{ gem_available[tool]['check'] }} \
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{% endfor %}{{ "\n\t" }}\
|
||||||
|
# -------------------- Cleanup --------------------
|
||||||
|
&& rm -rf /home/devilbox/.cache/ \
|
||||||
|
&& rm -rf /home/devilbox/.config/ \
|
||||||
|
&& rm -rf /root/.ansible \
|
||||||
|
&& rm -rf /root/.console \
|
||||||
|
&& rm -rf /root/.composer \
|
||||||
|
&& rm -rf /root/.drush \
|
||||||
|
&& rm -rf /root/.pm2 \
|
||||||
|
&& rm -rf /tmp/* \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -244,7 +540,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
|||||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Volumes
|
### Volumes
|
||||||
###
|
###
|
||||||
@@ -268,4 +563,5 @@ WORKDIR /shared/httpd
|
|||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
78
build/ansible/group_vars/all/all-ansible.yml
Normal file
78
build/ansible/group_vars/all/all-ansible.yml
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
---
|
||||||
|
###################################################################################################
|
||||||
|
# Ansible specific definitions
|
||||||
|
###################################################################################################
|
||||||
|
|
||||||
|
edit_comment_base: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead."
|
||||||
|
edit_comment_mods: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead."
|
||||||
|
edit_comment_prod: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead."
|
||||||
|
edit_comment_work: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead."
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Adds version checks to Dockerfile
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
debug: True
|
||||||
|
|
||||||
|
# Also implement checks in builder images (slow, but fails faster)
|
||||||
|
build_fail_fast: False
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Available PHP versions (see inventory)
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
php_all_versions:
|
||||||
|
- 5.2
|
||||||
|
- 5.3
|
||||||
|
- 5.4
|
||||||
|
- 5.5
|
||||||
|
- 5.6
|
||||||
|
- 7.0
|
||||||
|
- 7.1
|
||||||
|
- 7.2
|
||||||
|
- 7.3
|
||||||
|
- 7.4
|
||||||
|
- 8.0
|
||||||
|
- 8.1
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Docker file paths for each version for base, mods, prod & work
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
template_dockerfiles:
|
||||||
|
- src: DOCKERFILES/Dockerfile-base.j2
|
||||||
|
dst: "../../Dockerfiles/base/Dockerfile-{{ php_version }}"
|
||||||
|
- src: DOCKERFILES/Dockerfile-mods.j2
|
||||||
|
dst: "../../Dockerfiles/mods/Dockerfile-{{ php_version }}"
|
||||||
|
- src: DOCKERFILES/Dockerfile-prod.j2
|
||||||
|
dst: "../../Dockerfiles/prod/Dockerfile-{{ php_version }}"
|
||||||
|
- src: DOCKERFILES/Dockerfile-work.j2
|
||||||
|
dst: "../../Dockerfiles/work/Dockerfile-{{ php_version }}"
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Assign php.ini & php-fpm.conf to PHP versions
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
template_configurations:
|
||||||
|
# php.ini
|
||||||
|
- src: CONFIGURATIONS/php.ini.j2
|
||||||
|
dst: "../../Dockerfiles/base/data/php-ini.d/php-{{ php_version }}.ini"
|
||||||
|
cfg: "{{ php_settings_ini }}"
|
||||||
|
key: base
|
||||||
|
alt: base
|
||||||
|
- src: CONFIGURATIONS/php.ini.j2
|
||||||
|
dst: "../../Dockerfiles/work/data/php-ini.d/php-{{ php_version }}.ini"
|
||||||
|
cfg: "{{ php_settings_ini }}"
|
||||||
|
key: work
|
||||||
|
alt: base # Alternative key to use when definition is not set in 'work'
|
||||||
|
# php-fpm.conf
|
||||||
|
- src: CONFIGURATIONS/php-fpm.conf.j2
|
||||||
|
dst: "../../Dockerfiles/base/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
|
||||||
|
cfg: "{{ php_settings_fpm }}"
|
||||||
|
key: base
|
||||||
|
alt: base
|
||||||
|
- src: CONFIGURATIONS/php-fpm.conf.j2
|
||||||
|
dst: "../../Dockerfiles/work/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
|
||||||
|
cfg: "{{ php_settings_fpm }}"
|
||||||
|
key: work
|
||||||
|
alt: base
|
||||||
106
build/ansible/group_vars/all/all-php-settings.yml
Normal file
106
build/ansible/group_vars/all/all-php-settings.yml
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
---
|
||||||
|
###################################################################################################
|
||||||
|
# PHP php.ini php-fpm.conf settings
|
||||||
|
###################################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Global
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
php_timeout: 120
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# php.ini
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
php_settings_ini:
|
||||||
|
# ---- Sane default ----
|
||||||
|
base:
|
||||||
|
# Memory
|
||||||
|
memory_limit: 512M
|
||||||
|
# Timeouts
|
||||||
|
max_execution_time: "{{ php_timeout }}"
|
||||||
|
max_input_time: "{{ php_timeout }}"
|
||||||
|
# Uploads
|
||||||
|
# Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||||
|
post_max_size: 72M
|
||||||
|
upload_max_filesize: 64M
|
||||||
|
max_file_uploads: 20
|
||||||
|
# Variables
|
||||||
|
variables_order: EGPCS
|
||||||
|
max_input_vars: 8000
|
||||||
|
max_input_nesting_level: 64
|
||||||
|
# Error reporting
|
||||||
|
error_reporting: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||||
|
xmlrpc_errors: 'Off'
|
||||||
|
report_memleaks: 'On'
|
||||||
|
display_errors: 'Off'
|
||||||
|
display_startup_errors: 'Off'
|
||||||
|
track_errors: 'On'
|
||||||
|
log_errors: 'On'
|
||||||
|
html_errors: 'Off'
|
||||||
|
# Xdebug settings
|
||||||
|
xdebug_default_enable: 'Off'
|
||||||
|
xdebug_profiler_enable: 'Off'
|
||||||
|
xdebug_remote_enable: 'Off'
|
||||||
|
xdebug_remote_autostart: 'Off'
|
||||||
|
|
||||||
|
# ---- Inherits from base ----
|
||||||
|
mods:
|
||||||
|
# ---- Inherits from base ----
|
||||||
|
prod:
|
||||||
|
# ---- Inherits from base and overwrites certain values ----
|
||||||
|
work:
|
||||||
|
# Error reporting
|
||||||
|
error_reporting: E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
|
||||||
|
xmlrpc_errors: 'Off'
|
||||||
|
report_memleaks: 'On'
|
||||||
|
display_errors: 'On'
|
||||||
|
display_startup_errors: 'On'
|
||||||
|
track_errors: 'On'
|
||||||
|
log_errors: 'On'
|
||||||
|
html_errors: 'On'
|
||||||
|
# Xdebug settings
|
||||||
|
xdebug_default_enable: 'Off'
|
||||||
|
xdebug_profiler_enable: 'Off'
|
||||||
|
xdebug_remote_enable: 'Off'
|
||||||
|
xdebug_remote_autostart: 'Off'
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# php-fpm.conf
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
php_settings_fpm:
|
||||||
|
# ---- Sane default ----
|
||||||
|
base:
|
||||||
|
# Docker
|
||||||
|
clear_env: 'no'
|
||||||
|
catch_workers_output: 'yes'
|
||||||
|
# Timeouts
|
||||||
|
request_terminate_timeout: "{{ php_timeout }}s"
|
||||||
|
# Network
|
||||||
|
listen: 9000
|
||||||
|
# Backlog
|
||||||
|
listen_backlog: 1024
|
||||||
|
# Logging
|
||||||
|
log_level: notice
|
||||||
|
error_log: /proc/self/fd/2
|
||||||
|
access_log: /proc/self/fd/2
|
||||||
|
# Worker
|
||||||
|
pm: ondemand
|
||||||
|
pm_max_children: 50 # pm: dynamic, ondemand or static
|
||||||
|
pm_start_servers: 4 # only for pm: dynamic (min_spare + (max_spare-min_spare)/2
|
||||||
|
pm_min_spare_servers: 2 # only for pm: dynamic
|
||||||
|
pm_max_spare_servers: 6 # only for pm: dynamic
|
||||||
|
pm_max_requests: 500 # pm: dynamic or ondemand
|
||||||
|
pm_process_idle_timeout: 10s # only for pm: ondemand
|
||||||
|
|
||||||
|
# User/Group
|
||||||
|
user: devilbox
|
||||||
|
group: devilbox
|
||||||
|
# ---- Inherits from base ----
|
||||||
|
mods:
|
||||||
|
# ---- Inherits from base ----
|
||||||
|
prod:
|
||||||
|
# ---- Inherits from base and overwrites certain values ----
|
||||||
|
work:
|
||||||
1234
build/ansible/group_vars/all/mods.yml
Normal file
1234
build/ansible/group_vars/all/mods.yml
Normal file
File diff suppressed because it is too large
Load Diff
920
build/ansible/group_vars/all/work.yml
Normal file
920
build/ansible/group_vars/all/work.yml
Normal file
@@ -0,0 +1,920 @@
|
|||||||
|
---
|
||||||
|
###################################################################################################
|
||||||
|
# Docker: work
|
||||||
|
###################################################################################################
|
||||||
|
|
||||||
|
#
|
||||||
|
# This file holds definition for all devibox/php-fpm:x.y-work images
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Global variables
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
composer_home: /usr/local/src/composer
|
||||||
|
nvm_home: /usr/local/src/nvm
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Apt repositories to enable (in defined order)
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
apt_repositories_enabled:
|
||||||
|
- backports
|
||||||
|
- blackfire
|
||||||
|
- git
|
||||||
|
- mongo
|
||||||
|
- pgsql
|
||||||
|
- yarn
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# PHP Composer packages to install
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
composer_enabled:
|
||||||
|
- asgardcms
|
||||||
|
- codeception
|
||||||
|
- lumen
|
||||||
|
- photon
|
||||||
|
- prestissimo
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Ruby gem packages to install
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
gem_enabled:
|
||||||
|
- mixlib_config
|
||||||
|
- ffi
|
||||||
|
- rb_inotify
|
||||||
|
- mdl
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Node npm packages to install
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
npm_enabled:
|
||||||
|
- angular_cli
|
||||||
|
- eslint
|
||||||
|
- grunt
|
||||||
|
- grunt_cli
|
||||||
|
- gulp
|
||||||
|
- jsonlint
|
||||||
|
# https://github.com/Unitech/pm2
|
||||||
|
- pm2
|
||||||
|
- mdlint
|
||||||
|
- sass
|
||||||
|
- stylelint
|
||||||
|
- vue_cli
|
||||||
|
- vue_cli_service_global
|
||||||
|
- webpack
|
||||||
|
- webpack_cli
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Python pip packages to install
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
pip_enabled:
|
||||||
|
- ansible
|
||||||
|
- yamllint
|
||||||
|
- yq
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Software to install (in defined order)
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
software_enabled:
|
||||||
|
# Composer, pip and nvm need to be first, others rely on it
|
||||||
|
- composer
|
||||||
|
- pip
|
||||||
|
- nvm
|
||||||
|
# Normal packages start here
|
||||||
|
- awesomeci
|
||||||
|
- deployer
|
||||||
|
- drush7
|
||||||
|
- drush8
|
||||||
|
- drush9
|
||||||
|
- drupalconsole
|
||||||
|
- gitflow
|
||||||
|
- laravel
|
||||||
|
- linkcheck
|
||||||
|
- linuxbrew
|
||||||
|
- mhsendmail
|
||||||
|
- mysqldumpsecure
|
||||||
|
- phalcon
|
||||||
|
- phpcs
|
||||||
|
- phpcbf
|
||||||
|
- php-cs-fixer
|
||||||
|
- phpmd
|
||||||
|
- phpunit
|
||||||
|
- symfony
|
||||||
|
- wkhtmltopdf
|
||||||
|
- wpcli
|
||||||
|
# Cleanup needs to be last
|
||||||
|
- cleanup
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Apt repository definition
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# all: is generic version of defines
|
||||||
|
# 7.2: is specific version of defines
|
||||||
|
# disabled: [optional] Array of PHP versions for which to disable this module
|
||||||
|
#
|
||||||
|
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
|
||||||
|
# deb: Deb line to add to sources list
|
||||||
|
# key: [optional] Key id to add for repository
|
||||||
|
# pre: [optional] Run custom command to add gpg key for repository
|
||||||
|
#
|
||||||
|
apt_repositories_available:
|
||||||
|
backports:
|
||||||
|
5.2:
|
||||||
|
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||||
|
deb: deb http://archive.debian.org/debian jessie-backports main
|
||||||
|
5.3:
|
||||||
|
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||||
|
deb: deb http://archive.debian.org/debian jessie-backports main
|
||||||
|
5.4:
|
||||||
|
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||||
|
deb: deb http://archive.debian.org/debian jessie-backports main
|
||||||
|
5.5:
|
||||||
|
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||||
|
deb: deb http://archive.debian.org/debian jessie-backports main
|
||||||
|
all:
|
||||||
|
deb: deb http://ftp.debian.org/debian stretch-backports main
|
||||||
|
blackfire:
|
||||||
|
all:
|
||||||
|
deb: deb http://packages.blackfire.io/debian any main
|
||||||
|
pre: curl -sS -L --fail "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
|
||||||
|
git:
|
||||||
|
7.2:
|
||||||
|
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main
|
||||||
|
7.3:
|
||||||
|
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main
|
||||||
|
7.4:
|
||||||
|
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main
|
||||||
|
8.0:
|
||||||
|
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main
|
||||||
|
8.1:
|
||||||
|
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main
|
||||||
|
all:
|
||||||
|
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main
|
||||||
|
key: A1715D88E1DF1F24
|
||||||
|
mongo:
|
||||||
|
5.2:
|
||||||
|
deb: deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main
|
||||||
|
key: 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
|
||||||
|
5.3:
|
||||||
|
deb: deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main
|
||||||
|
key: 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
|
||||||
|
5.4:
|
||||||
|
deb: deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main
|
||||||
|
key: 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
|
||||||
|
5.5:
|
||||||
|
deb: deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main
|
||||||
|
key: 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
|
||||||
|
all:
|
||||||
|
deb: deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main
|
||||||
|
key: 9DA31620334BD75D9DCB49F368818C72E52529D4
|
||||||
|
pgsql:
|
||||||
|
5.2:
|
||||||
|
deb: deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main
|
||||||
|
5.3:
|
||||||
|
deb: deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main
|
||||||
|
5.4:
|
||||||
|
deb: deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main
|
||||||
|
5.5:
|
||||||
|
deb: deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main
|
||||||
|
all:
|
||||||
|
deb: deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main
|
||||||
|
pre: 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 -
|
||||||
|
yarn:
|
||||||
|
all:
|
||||||
|
deb: deb http://dl.yarnpkg.com/debian/ stable main
|
||||||
|
pre: 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 -
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Composer (PHP) definition
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# name: Name of the PHP Composer package
|
||||||
|
# link: [optional] Name of the binary to symlink to /usr/local/bin
|
||||||
|
# all: is generic version of defines
|
||||||
|
# 7.2: is specific version of defines
|
||||||
|
# disabled: [optional] Array of PHP versions for which to disable this module
|
||||||
|
# check: [optional] Include a check command to test if it was installed successfully
|
||||||
|
# version: Composer version: Either '1' or '2' for composer version
|
||||||
|
#
|
||||||
|
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
|
||||||
|
# version: [optional] Specific version of Ruby gem
|
||||||
|
#
|
||||||
|
composer_available:
|
||||||
|
asgardcms:
|
||||||
|
disabled: [5.2, 5.3, 5.4, 8.0, 8.1]
|
||||||
|
check: asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+'
|
||||||
|
name: asgardcms/asgardcms-installer
|
||||||
|
link: asgardcms
|
||||||
|
version: 2
|
||||||
|
codeception:
|
||||||
|
disabled: [5.2, 8.0, 8.1]
|
||||||
|
check: codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$'
|
||||||
|
name: codeception/codeception
|
||||||
|
link: codecept
|
||||||
|
version: 2
|
||||||
|
lumen:
|
||||||
|
disabled: [5.2, 5.3, 5.4, 8.0, 8.1]
|
||||||
|
check: lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$'
|
||||||
|
name: laravel/lumen-installer
|
||||||
|
link: lumen
|
||||||
|
version: 2
|
||||||
|
photon:
|
||||||
|
disabled: [5.2, 5.3, 5.4, 8.0, 8.1]
|
||||||
|
check: photon --version | grep -E 'Installer [0-9][.0-9]+'
|
||||||
|
name: photoncms/installer
|
||||||
|
link: photon
|
||||||
|
version: 2
|
||||||
|
prestissimo:
|
||||||
|
disabled: [5.2, 8.0, 8.1]
|
||||||
|
name: hirak/prestissimo
|
||||||
|
version: 1
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Gems (Ruby) definition
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# name: Name of the Ruby gem package
|
||||||
|
# all: is generic version of defines
|
||||||
|
# 7.2: is specific version of defines
|
||||||
|
# disabled: [optional] Array of PHP versions for which to disable this module
|
||||||
|
# check: [optional] Include a check command to test if it was installed successfully
|
||||||
|
#
|
||||||
|
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
|
||||||
|
# version: [optional] Specific version of Ruby gem
|
||||||
|
#
|
||||||
|
gem_available:
|
||||||
|
mixlib_config:
|
||||||
|
name: mixlib-config
|
||||||
|
all:
|
||||||
|
version: 2.2.4
|
||||||
|
# Required by rb-inotify, as otherwise rb-inotify will pull ffi as a dependency in a
|
||||||
|
# version which is not supported by the ruby version (>= 2.3)
|
||||||
|
ffi:
|
||||||
|
name: ffi
|
||||||
|
disabled: [5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1]
|
||||||
|
all:
|
||||||
|
version: 1.12.2
|
||||||
|
rb_inotify:
|
||||||
|
name: rb-inotify
|
||||||
|
all:
|
||||||
|
version: 0.9.10
|
||||||
|
mdl:
|
||||||
|
name: mdl
|
||||||
|
check: mdl --version | grep -E '[0-9][.0-9]+'
|
||||||
|
8.1:
|
||||||
|
version: 0.5.0
|
||||||
|
8.0:
|
||||||
|
version: 0.5.0
|
||||||
|
7.4:
|
||||||
|
version: 0.5.0
|
||||||
|
7.3:
|
||||||
|
version: 0.5.0
|
||||||
|
7.2:
|
||||||
|
version: 0.5.0
|
||||||
|
7.1:
|
||||||
|
version: 0.5.0
|
||||||
|
7.0:
|
||||||
|
version: 0.5.0
|
||||||
|
5.6:
|
||||||
|
version: 0.5.0
|
||||||
|
5.5:
|
||||||
|
version: 0.5.0
|
||||||
|
5.4:
|
||||||
|
version: 0.5.0
|
||||||
|
5.3:
|
||||||
|
version: 0.5.0
|
||||||
|
5.2:
|
||||||
|
version: 0.5.0
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# npm (Node) definition
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# name: Name of the Node npm package
|
||||||
|
# all: is generic version of defines
|
||||||
|
# 7.2: is specific version of defines
|
||||||
|
# disabled: [optional] Array of PHP versions for which to disable this module
|
||||||
|
# check: [optional] Include a check command to test if it was installed successfully
|
||||||
|
#
|
||||||
|
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
|
||||||
|
# version: [optional] Specific version of Node npm package
|
||||||
|
#
|
||||||
|
npm_available:
|
||||||
|
angular_cli:
|
||||||
|
name: "@angular/cli"
|
||||||
|
check: ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+'
|
||||||
|
eslint:
|
||||||
|
name: eslint
|
||||||
|
check: eslint -v | grep -E '[0-9][.0-9]+'
|
||||||
|
grunt:
|
||||||
|
name: grunt
|
||||||
|
grunt_cli:
|
||||||
|
name: grunt-cli
|
||||||
|
check: grunt --version | grep -E '[0-9][.0-9]+'
|
||||||
|
gulp:
|
||||||
|
name: gulp
|
||||||
|
check: gulp --version | grep -E '[0-9][.0-9]+'
|
||||||
|
jsonlint:
|
||||||
|
name: jsonlint
|
||||||
|
check: jsonlint --version | grep -E '[0-9][.0-9]+'
|
||||||
|
pm2:
|
||||||
|
name: pm2
|
||||||
|
check: pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+'
|
||||||
|
mdlint:
|
||||||
|
name: mdlint
|
||||||
|
check: mdlint --version | grep -E '[0-9][.0-9]+'
|
||||||
|
sass:
|
||||||
|
name: sass
|
||||||
|
check: sass --version | grep -E '[0-9][.0-9]+'
|
||||||
|
stylelint:
|
||||||
|
name: stylelint
|
||||||
|
check: stylelint --version | grep -E '[0-9][.0-9]+'
|
||||||
|
vue_cli:
|
||||||
|
name: "@vue/cli"
|
||||||
|
check: vue --version | grep -E '[0-9][.0-9]+'
|
||||||
|
vue_cli_service_global:
|
||||||
|
name: "@vue/cli-service-global"
|
||||||
|
webpack:
|
||||||
|
name: webpack
|
||||||
|
webpack_cli:
|
||||||
|
name: webpack-cli
|
||||||
|
check: webpack --version | grep -E '[0-9][.0-9]+'
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# pip (Python) definition
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# name: Name of the Python pip package
|
||||||
|
# all: is generic version of defines
|
||||||
|
# 7.2: is specific version of defines
|
||||||
|
# disabled: [optional] Array of PHP versions for which to disable this module
|
||||||
|
# check: [optional] Include a check command to test if it was installed successfully
|
||||||
|
#
|
||||||
|
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
|
||||||
|
# version: [optional] Specific version of Python pip package
|
||||||
|
#
|
||||||
|
pip_available:
|
||||||
|
ansible:
|
||||||
|
name: ansible
|
||||||
|
check: ansible --version | grep -E '^ansible [0-9][.0-9]+$'
|
||||||
|
yamllint:
|
||||||
|
name: yamllint
|
||||||
|
check: yamllint --version 2>&1 | grep -E '[0-9][.0-9]+'
|
||||||
|
yq:
|
||||||
|
name: yq
|
||||||
|
check: yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$'
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Software definition
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# all: is generic version of defines
|
||||||
|
# 7.2: is specific version of defines
|
||||||
|
# disabled: [optional] Array of PHP versions for which to disable this module
|
||||||
|
# check: [optional] Include a check command to test if it was installed successfully
|
||||||
|
#
|
||||||
|
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
|
||||||
|
# pre: [optional] Run command before 'command:' statement
|
||||||
|
# command: Command to execute
|
||||||
|
# post: [optional] Run command after 'command:' statement
|
||||||
|
#
|
||||||
|
software_available:
|
||||||
|
# Composer is a dependency for others
|
||||||
|
composer:
|
||||||
|
disabled: [5.2]
|
||||||
|
check: composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+'
|
||||||
|
all:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
||||||
|
&& curl -sS -L --fail https://getcomposer.org/composer-2.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 is a dependency for others
|
||||||
|
pip:
|
||||||
|
all:
|
||||||
|
command: |
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libpython-dev \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python \
|
||||||
|
# nvm is a dependency for others
|
||||||
|
nvm:
|
||||||
|
check: su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[0-9][.0-9]+'
|
||||||
|
all:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/creationix/nvm /opt/nvm \
|
||||||
|
&& cd /opt/nvm \
|
||||||
|
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
||||||
|
\
|
||||||
|
&& { \
|
||||||
|
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 \
|
||||||
|
# Install latest and LTS version
|
||||||
|
command: |
|
||||||
|
su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
||||||
|
awesomeci:
|
||||||
|
check: regex-grep --version | grep -E '[0-9][.0-9]+'
|
||||||
|
all:
|
||||||
|
command: |
|
||||||
|
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:
|
||||||
|
disabled: [5.2, 5.3]
|
||||||
|
check: dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+'
|
||||||
|
5.4:
|
||||||
|
command: curl -sS -L --fail https://deployer.org/releases/v3.3.0/deployer.phar -L -o /usr/local/bin/dep
|
||||||
|
post: chmod +x /usr/local/bin/dep
|
||||||
|
5.5:
|
||||||
|
command: curl -sS -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep
|
||||||
|
post: chmod +x /usr/local/bin/dep
|
||||||
|
5.6:
|
||||||
|
command: curl -sS -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep
|
||||||
|
post: chmod +x /usr/local/bin/dep
|
||||||
|
7.0:
|
||||||
|
command: curl -sS -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep
|
||||||
|
post: chmod +x /usr/local/bin/dep
|
||||||
|
7.1:
|
||||||
|
command: curl -sS -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep
|
||||||
|
post: chmod +x /usr/local/bin/dep
|
||||||
|
all:
|
||||||
|
command: curl -sS -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep
|
||||||
|
post: chmod +x /usr/local/bin/dep
|
||||||
|
drush7:
|
||||||
|
disabled: [5.2, 8.0, 8.1]
|
||||||
|
check: drush7 --version | grep -E '7[.0-9]+\s*$'
|
||||||
|
all:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||||
|
&& cd /usr/local/src/drush7 \
|
||||||
|
&& git checkout 7.4.0 \
|
||||||
|
command: |
|
||||||
|
chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||||
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
|
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||||
|
&& rm -rf /usr/local/src/drush7/.git \
|
||||||
|
&& rm -rf /usr/local/src/drush7/docs \
|
||||||
|
&& rm -rf /usr/local/src/drush7/examples \
|
||||||
|
&& rm -rf /usr/local/src/drush7/misc \
|
||||||
|
drush8:
|
||||||
|
disabled: [5.2, 5.3, 8.0, 8.1]
|
||||||
|
check: drush8 --version | grep -E '8[.0-9]+\s*$'
|
||||||
|
all:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||||
|
&& cd /usr/local/src/drush8 \
|
||||||
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
|
command: |
|
||||||
|
chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||||
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||||
|
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||||
|
&& rm -rf /usr/local/src/drush8/.git \
|
||||||
|
&& rm -rf /usr/local/src/drush8/docs \
|
||||||
|
&& rm -rf /usr/local/src/drush8/examples \
|
||||||
|
&& rm -rf /usr/local/src/drush8/misc \
|
||||||
|
drush9:
|
||||||
|
disabled: [5.2, 5.3, 5.4, 5.5, 8.0, 8.1]
|
||||||
|
check: drush9 --version | grep -E '9[.0-9]+\s*$'
|
||||||
|
all:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
||||||
|
&& cd /usr/local/src/drush9 \
|
||||||
|
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||||
|
command: |
|
||||||
|
chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
||||||
|
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress' \
|
||||||
|
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
||||||
|
&& rm -rf /usr/local/src/drush9/.git \
|
||||||
|
&& rm -rf /usr/local/src/drush9/docs \
|
||||||
|
&& rm -rf /usr/local/src/drush9/examples \
|
||||||
|
&& rm -rf /usr/local/src/drush9/misc \
|
||||||
|
drupalconsole:
|
||||||
|
disabled: [5.2, 5.3, 5.4, 8.0, 8.1] # TODO: re-enable for 8.0 (currently errors)
|
||||||
|
check: drupal --version | grep -E 'Drupal Console Launcher\s*[0-9][.0-9]'
|
||||||
|
5.5:
|
||||||
|
pre: DURL="https://github.com/hechoendrupal/drupal-console-launcher/releases/download/1.9.4/drupal.phar"
|
||||||
|
5.6:
|
||||||
|
pre: DURL="https://github.com/hechoendrupal/drupal-console-launcher/releases/download/1.9.4/drupal.phar"
|
||||||
|
7.0:
|
||||||
|
pre: DURL="https://github.com/hechoendrupal/drupal-console-launcher/releases/download/1.9.4/drupal.phar"
|
||||||
|
7.1:
|
||||||
|
pre: DURL="https://github.com/hechoendrupal/drupal-console-launcher/releases/download/1.9.4/drupal.phar"
|
||||||
|
all:
|
||||||
|
pre: 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')"
|
||||||
|
command: curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal
|
||||||
|
post: chmod +x /usr/local/bin/drupal
|
||||||
|
gitflow:
|
||||||
|
check: git-flow version | grep -E '[0-9][.0-9]+'
|
||||||
|
all:
|
||||||
|
command: |
|
||||||
|
git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||||
|
&& cd /tmp/gitflow \
|
||||||
|
&& make install \
|
||||||
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
|
laravel:
|
||||||
|
check: laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+'
|
||||||
|
disabled: [5.2, 5.3, 8.0, 8.1]
|
||||||
|
5.4:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||||
|
&& cd /usr/local/src/laravel-installer \
|
||||||
|
&& git checkout v1.3.7 \
|
||||||
|
post:
|
||||||
|
ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel
|
||||||
|
5.5:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||||
|
&& cd /usr/local/src/laravel-installer \
|
||||||
|
&& git checkout v2.0.0 \
|
||||||
|
post:
|
||||||
|
ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel
|
||||||
|
5.6:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||||
|
&& cd /usr/local/src/laravel-installer \
|
||||||
|
&& git checkout v2.0.0 \
|
||||||
|
post:
|
||||||
|
ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel
|
||||||
|
7.0:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||||
|
&& cd /usr/local/src/laravel-installer \
|
||||||
|
&& git checkout v2.0.0 \
|
||||||
|
post:
|
||||||
|
ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel
|
||||||
|
7.1:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||||
|
&& cd /usr/local/src/laravel-installer \
|
||||||
|
&& git checkout $(git tag | grep '^v2\.3\.' | sort -u | tail -1) \
|
||||||
|
post:
|
||||||
|
ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel
|
||||||
|
7.2:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||||
|
&& cd /usr/local/src/laravel-installer \
|
||||||
|
&& git checkout v4.0.0 \
|
||||||
|
post:
|
||||||
|
ln -s /usr/local/src/laravel-installer/bin/laravel /usr/local/bin/laravel
|
||||||
|
all:
|
||||||
|
pre: |
|
||||||
|
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) \
|
||||||
|
command: |
|
||||||
|
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 \
|
||||||
|
post:
|
||||||
|
ln -s /usr/local/src/laravel-installer/bin/laravel /usr/local/bin/laravel
|
||||||
|
linkcheck:
|
||||||
|
check: linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+'
|
||||||
|
all:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||||
|
&& chmod +x /usr/local/bin/linkcheck \
|
||||||
|
linuxbrew:
|
||||||
|
check: su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[0-9][.0-9]+'
|
||||||
|
all:
|
||||||
|
command: |
|
||||||
|
git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||||
|
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||||
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
|
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||||
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
|
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
|
||||||
|
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||||
|
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||||
|
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||||
|
mhsendmail:
|
||||||
|
all:
|
||||||
|
command: |
|
||||||
|
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 \
|
||||||
|
mysqldumpsecure:
|
||||||
|
check: mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+'
|
||||||
|
all:
|
||||||
|
command: |
|
||||||
|
git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||||
|
&& cd /usr/local/src/mysqldump-secure \
|
||||||
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
|
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||||
|
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||||
|
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||||
|
&& touch /var/log/mysqldump-secure.log \
|
||||||
|
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||||
|
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||||
|
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||||
|
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||||
|
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||||
|
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||||
|
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||||
|
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||||
|
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||||
|
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||||
|
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||||
|
&& cd / \
|
||||||
|
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||||
|
phalcon:
|
||||||
|
disabled: [5.2, 8.0, 8.1]
|
||||||
|
check: phalcon commands | grep -E '[0-9][.0-9]+'
|
||||||
|
5.3:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||||
|
&& cd /usr/local/src/phalcon-devtools \
|
||||||
|
&& git checkout v2.0.7 \
|
||||||
|
command: |
|
||||||
|
chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||||
|
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||||
|
&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \
|
||||||
|
&& cd / \
|
||||||
|
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||||
|
5.4:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||||
|
&& cd /usr/local/src/phalcon-devtools \
|
||||||
|
&& git checkout v2.0.9 \
|
||||||
|
command: |
|
||||||
|
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.php /usr/local/bin/phalcon \
|
||||||
|
&& cd / \
|
||||||
|
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||||
|
5.5:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||||
|
&& cd /usr/local/src/phalcon-devtools \
|
||||||
|
&& git checkout v3.4.11 \
|
||||||
|
command: |
|
||||||
|
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 /usr/local/bin/phalcon \
|
||||||
|
&& cd / \
|
||||||
|
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||||
|
5.6:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||||
|
&& cd /usr/local/src/phalcon-devtools \
|
||||||
|
&& git checkout v3.4.11 \
|
||||||
|
command: |
|
||||||
|
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 /usr/local/bin/phalcon \
|
||||||
|
&& cd / \
|
||||||
|
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||||
|
7.0:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||||
|
&& cd /usr/local/src/phalcon-devtools \
|
||||||
|
&& git checkout v3.4.11 \
|
||||||
|
command: |
|
||||||
|
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 /usr/local/bin/phalcon \
|
||||||
|
&& cd / \
|
||||||
|
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||||
|
7.1:
|
||||||
|
pre: |
|
||||||
|
git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||||
|
&& cd /usr/local/src/phalcon-devtools \
|
||||||
|
&& git checkout v3.4.11 \
|
||||||
|
command: |
|
||||||
|
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 /usr/local/bin/phalcon \
|
||||||
|
&& cd / \
|
||||||
|
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||||
|
all:
|
||||||
|
pre: |
|
||||||
|
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 \
|
||||||
|
command: |
|
||||||
|
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:
|
||||||
|
check: phpcs --version | grep -E 'version [0-9][.0-9]+'
|
||||||
|
5.2:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||||
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
|
5.3:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||||
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
|
all:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||||
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
|
phpcbf:
|
||||||
|
check: phpcbf --version | grep -E 'version [0-9][.0-9]+'
|
||||||
|
5.2:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||||
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
|
5.3:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||||
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
|
all:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||||
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
|
php-cs-fixer:
|
||||||
|
disabled: [5.2, 7.4, 8.0, 8.1]
|
||||||
|
check: php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+'
|
||||||
|
5.3:
|
||||||
|
command: |
|
||||||
|
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 \
|
||||||
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
|
5.4:
|
||||||
|
command: |
|
||||||
|
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 \
|
||||||
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
|
5.5:
|
||||||
|
command: |
|
||||||
|
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 \
|
||||||
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
|
all:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
|
||||||
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
|
phpmd:
|
||||||
|
disabled: [5.2]
|
||||||
|
check: phpmd --version | grep -E '^PHPMD [0-9][.0-9]+'
|
||||||
|
all:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
|
phpunit:
|
||||||
|
disabled: [5.2, 8.0, 8.1]
|
||||||
|
check: phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+'
|
||||||
|
5.3:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||||
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
|
5.4:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||||
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
|
5.5:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||||
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
|
5.6:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://phar.phpunit.de/phpunit-5.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||||
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
|
7.0:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://phar.phpunit.de/phpunit-6.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||||
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
|
all:
|
||||||
|
command: |
|
||||||
|
curl -sS -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||||
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
|
symfony:
|
||||||
|
disabled: [5.2, 5.3]
|
||||||
|
check: symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+'
|
||||||
|
all:
|
||||||
|
pre: SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )"
|
||||||
|
command: curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony
|
||||||
|
post: chmod +x /usr/local/bin/symfony
|
||||||
|
wkhtmltopdf:
|
||||||
|
check: wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"
|
||||||
|
5.2:
|
||||||
|
pre: VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )"
|
||||||
|
5.3:
|
||||||
|
pre: VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )"
|
||||||
|
5.4:
|
||||||
|
pre: VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )"
|
||||||
|
5.5:
|
||||||
|
pre: VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )"
|
||||||
|
7.1:
|
||||||
|
command: |
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
|
7.2:
|
||||||
|
command: |
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
|
7.3:
|
||||||
|
command: |
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
|
7.4:
|
||||||
|
command: |
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
|
8.0:
|
||||||
|
command: |
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
|
8.1:
|
||||||
|
command: |
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
|
all:
|
||||||
|
pre: VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )"
|
||||||
|
command: |
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||||
|
post: |
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
wpcli:
|
||||||
|
disabled: [5.2]
|
||||||
|
check: wp --allow-root --version | grep -E '[0-9][.0-9]+'
|
||||||
|
5.3:
|
||||||
|
command: 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
|
||||||
|
post: chmod +x /usr/local/bin/wp
|
||||||
|
all:
|
||||||
|
command: curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp
|
||||||
|
post: chmod +x /usr/local/bin/wp
|
||||||
|
cleanup:
|
||||||
|
all:
|
||||||
|
command: |
|
||||||
|
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) \
|
||||||
@@ -10,3 +10,4 @@ php-7.2 php_version=7.2 ansible_connection=local
|
|||||||
php-7.3 php_version=7.3 ansible_connection=local
|
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
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ print_usage() {
|
|||||||
echo " gen-readme.sh 7.3"
|
echo " gen-readme.sh 7.3"
|
||||||
echo " gen-readme.sh 7.4"
|
echo " gen-readme.sh 7.4"
|
||||||
echo " gen-readme.sh 8.0"
|
echo " gen-readme.sh 8.0"
|
||||||
|
echo " gen-readme.sh 8.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -35,14 +36,14 @@ get_modules() {
|
|||||||
tag="${1}"
|
tag="${1}"
|
||||||
|
|
||||||
# Retrieve all modules
|
# Retrieve all modules
|
||||||
PHP_MODULES="$( docker run -it --entrypoint=php devilbox/php-fpm:${tag} -m )"
|
PHP_MODULES="$( docker run --rm $(tty -s && echo '-it' || echo) --entrypoint=php devilbox/php-fpm:${tag} -m )"
|
||||||
ALL_MODULES=
|
ALL_MODULES=
|
||||||
|
|
||||||
if docker run -it --entrypoint=find devilbox/php-fpm:${tag} /usr/local/lib/php/extensions -name 'ioncube.so' | grep -q ioncube.so; then
|
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
|
||||||
ALL_MODULES="${ALL_MODULES},ioncube";
|
ALL_MODULES="${ALL_MODULES},ioncube";
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if docker run -it --entrypoint=find devilbox/php-fpm:${tag} /usr/local/lib/php/extensions -name 'blackfire.so' | grep -q blackfire.so; then
|
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
|
||||||
ALL_MODULES="${ALL_MODULES},blackfire";
|
ALL_MODULES="${ALL_MODULES},blackfire";
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -94,6 +95,7 @@ if [ "${#}" -eq "0" ]; then
|
|||||||
update_readme "7.3"
|
update_readme "7.3"
|
||||||
update_readme "7.4"
|
update_readme "7.4"
|
||||||
update_readme "8.0"
|
update_readme "8.0"
|
||||||
|
update_readme "8.1"
|
||||||
elif [ "${#}" -gt "1" ]; then
|
elif [ "${#}" -gt "1" ]; then
|
||||||
# Specifying more than 1 argument is wrong
|
# Specifying more than 1 argument is wrong
|
||||||
echo "Error, invalid number of arguments."
|
echo "Error, invalid number of arguments."
|
||||||
@@ -110,7 +112,8 @@ else
|
|||||||
&& [ "${1}" != "7.2" ] \
|
&& [ "${1}" != "7.2" ] \
|
||||||
&& [ "${1}" != "7.3" ] \
|
&& [ "${1}" != "7.3" ] \
|
||||||
&& [ "${1}" != "7.4" ] \
|
&& [ "${1}" != "7.4" ] \
|
||||||
&& [ "${1}" != "8.0" ]; then
|
&& [ "${1}" != "8.0" ] \
|
||||||
|
&& [ "${1}" != "8.1" ]; 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
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ function run() {
|
|||||||
printf "${yellow}[%s] ${red}%s \$ ${green}${cmd}${reset}\n" "$(hostname)" "$(whoami)" >&2
|
printf "${yellow}[%s] ${red}%s \$ ${green}${cmd}${reset}\n" "$(hostname)" "$(whoami)" >&2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if sh -c "LANG=C LC_ALL=C ${cmd}"; then
|
if sh -c "${cmd}"; then
|
||||||
if [ "${to_stderr}" -eq "0" ]; then
|
if [ "${to_stderr}" -eq "0" ]; then
|
||||||
printf "${green}[%s]${reset}\n" "OK"
|
printf "${green}[%s]${reset}\n" "OK"
|
||||||
else
|
else
|
||||||
@@ -67,7 +67,7 @@ function run_fail() {
|
|||||||
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
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! sh -c "LANG=C LC_ALL=C ${cmd}"; then
|
if ! sh -c "${cmd}"; then
|
||||||
if [ "${to_stderr}" -eq "0" ]; then
|
if [ "${to_stderr}" -eq "0" ]; then
|
||||||
printf "${green}[%s]${reset}\n" "OK"
|
printf "${green}[%s]${reset}\n" "OK"
|
||||||
else
|
else
|
||||||
@@ -112,12 +112,12 @@ function docker_run() {
|
|||||||
local args="${*}"
|
local args="${*}"
|
||||||
|
|
||||||
# Returns docker-id
|
# Returns docker-id
|
||||||
did="$( run "docker run -d --name $( get_random_name ) ${args} ${image_name}" "1" )"
|
did="$( run "docker run --rm -d --name $( get_random_name ) ${args} ${image_name}" "1" )"
|
||||||
sleep 4
|
sleep 10
|
||||||
|
|
||||||
# If it fails, start again in foreground to fail again, but show errors
|
# If it fails, start again in foreground to fail again, but show errors
|
||||||
if ! docker exec -it ${did} ls >/dev/null 2>&1; then
|
if ! docker exec $(tty -s && echo "-it" || echo ) ${did} ls >/dev/null 2>&1; then
|
||||||
run "docker run --name $( get_random_name ) ${args} ${image_name}" "1"
|
run "docker run --rm --name $( get_random_name ) ${args} ${image_name}" "1"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -146,7 +146,7 @@ function docker_exec() {
|
|||||||
shift
|
shift
|
||||||
local args="${*}"
|
local args="${*}"
|
||||||
|
|
||||||
run "docker exec ${args} -it ${did} ${cmd}"
|
run "docker exec ${args} $(tty -s && echo '-it' || echo) ${did} ${cmd}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
29
tests/mods/01-test-modules.sh
Executable file
29
tests/mods/01-test-modules.sh
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
|
IMAGE="${1}"
|
||||||
|
VERSION="${2}"
|
||||||
|
FLAVOUR="${3}"
|
||||||
|
|
||||||
|
|
||||||
|
# shellcheck disable=SC1090
|
||||||
|
. "${CWD}/../.lib.sh"
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Testing
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
ERROR=0
|
||||||
|
for dir in $( ls -1 "${CWD}/modules/" ); do
|
||||||
|
if ! "${CWD}/modules.sh" "${IMAGE}" "${VERSION}" "${FLAVOUR}" "${dir}"; then
|
||||||
|
ERROR="$(( ERROR + 1 ))"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
exit "${ERROR}"
|
||||||
80
tests/mods/modules.sh
Executable file
80
tests/mods/modules.sh
Executable file
@@ -0,0 +1,80 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
|
if [ "${#}" != "4" ]; then
|
||||||
|
>&2 echo "Error, requires 4 arguments: <IMAGE> <VERSION> <FLAVOUR> <MODULE>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
IMAGE="${1}"
|
||||||
|
VERSION="${2}"
|
||||||
|
FLAVOUR="${3}"
|
||||||
|
MODULE="${4}"
|
||||||
|
|
||||||
|
# shellcheck disable=SC1090
|
||||||
|
. "${CWD}/../.lib.sh"
|
||||||
|
|
||||||
|
|
||||||
|
SKIP_GD=("")
|
||||||
|
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "# ------------------------------------------------------------"
|
||||||
|
echo "# Testing: ${MODULE}"
|
||||||
|
echo "# ------------------------------------------------------------"
|
||||||
|
echo
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Check skipping
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
if [[ ${SKIP_GD[*]} =~ ${VERSION} ]]; then
|
||||||
|
echo "Skipping '${MODULE}' checks for PHP ${VERSION}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Testing
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
WORKDIR="/tmp/${MODULE}"
|
||||||
|
docker run \
|
||||||
|
--rm \
|
||||||
|
-e DEBUG_ENTRYPOINT=0 \
|
||||||
|
-e NEW_UID="$(id -u)" \
|
||||||
|
-e NEW_GID="$(id -g)" \
|
||||||
|
-v "${CWD}/modules/${MODULE}:${WORKDIR}" \
|
||||||
|
--entrypoint=sh \
|
||||||
|
--workdir="${WORKDIR}" \
|
||||||
|
"${IMAGE}:${VERSION}-${FLAVOUR}" \
|
||||||
|
-c 'find . -name "*.php" -type f -print0 | xargs -0 -n1 sh -c "
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
if [ -f \"\${1:-}\" ]; then
|
||||||
|
fail=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
|
||||||
|
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}\"
|
||||||
|
php \"\${1}\" || true
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
printf \"\\r[OK] %s\\n\" \"\${1}\"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
" --'
|
||||||
26
tests/mods/modules/bcmath/bcmath.php
Normal file
26
tests/mods/modules/bcmath/bcmath.php
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?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);
|
||||||
|
|
||||||
|
$a = '1.234';
|
||||||
|
$b = '5';
|
||||||
|
|
||||||
|
$num1 = bcadd($a, $b); // 6
|
||||||
|
$num2 = bcadd($a, $b, 4); // 6.2340
|
||||||
|
|
||||||
|
if ($num1 != 6) {
|
||||||
|
echo 'FAIL: ' . $num1;
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($num2 != 6.2340) {
|
||||||
|
echo 'FAIL: ' . $num2;
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo 'OK';
|
||||||
30
tests/mods/modules/enchant/enchant-aspell.php
Normal file
30
tests/mods/modules/enchant/enchant-aspell.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?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);
|
||||||
|
|
||||||
|
|
||||||
|
$backend = 'aspell';
|
||||||
|
|
||||||
|
$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);
|
||||||
30
tests/mods/modules/enchant/enchant-hspell.php
Normal file
30
tests/mods/modules/enchant/enchant-hspell.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?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);
|
||||||
|
|
||||||
|
|
||||||
|
$backend = 'hspell';
|
||||||
|
|
||||||
|
$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);
|
||||||
30
tests/mods/modules/enchant/enchant-ispell.php
Normal file
30
tests/mods/modules/enchant/enchant-ispell.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?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);
|
||||||
|
|
||||||
|
|
||||||
|
$backend = 'ispell';
|
||||||
|
|
||||||
|
$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);
|
||||||
30
tests/mods/modules/enchant/enchant-myspell.php
Normal file
30
tests/mods/modules/enchant/enchant-myspell.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?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);
|
||||||
|
|
||||||
|
|
||||||
|
$backend = 'myspell';
|
||||||
|
|
||||||
|
$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);
|
||||||
20
tests/mods/modules/gd/gd-freetype.php
Normal file
20
tests/mods/modules/gd/gd-freetype.php
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?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);
|
||||||
|
|
||||||
|
|
||||||
|
$arr = gd_info();
|
||||||
|
if (!isset($arr['FreeType Support'])) {
|
||||||
|
echo 'FAIL: FreeType Support array key does not exist.';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
if ($arr['FreeType Support'] !== TRUE) {
|
||||||
|
echo 'FAIL: No FreeType support.';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
echo 'OK';
|
||||||
67
tests/mods/modules/gd/gd-jpeg.php
Normal file
67
tests/mods/modules/gd/gd-jpeg.php
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
<?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);
|
||||||
|
|
||||||
|
// Create a blank image and add some text
|
||||||
|
if ( ($im = imagecreatetruecolor(640, 480)) === FALSE ) {
|
||||||
|
echo 'FAIL: imagecreatetruecolor()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// First we create our stamp image manually from GD
|
||||||
|
if ( ($stamp = imagecreatetruecolor(100, 70)) === FALSE ) {
|
||||||
|
echo 'FAIL: imagecreatetruecolor()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!imagefilledrectangle($stamp, 0, 0, 99, 69, 0x0000FF)) {
|
||||||
|
echo 'FAIL: imagefilledrectangle()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
if (!imagefilledrectangle($stamp, 9, 9, 90, 60, 0xFFFFFF)) {
|
||||||
|
echo 'FAIL: imagefilledrectangle()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!imagestring($stamp, 5, 20, 20, 'libGD', 0x0000FF)) {
|
||||||
|
echo 'FAIL: imagestring()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
if (!imagestring($stamp, 3, 20, 40, '(c) 2007-9', 0x0000FF)) {
|
||||||
|
echo 'FAIL: imagestring()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Set the margins for the stamp and get the height/width of the stamp image
|
||||||
|
$marge_right = 10;
|
||||||
|
$marge_bottom = 10;
|
||||||
|
$sx = imagesx($stamp);
|
||||||
|
$sy = imagesy($stamp);
|
||||||
|
|
||||||
|
// Merge the stamp onto our photo with an opacity of 50%
|
||||||
|
if (!imagecopymerge($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp), 50)) {
|
||||||
|
echo 'FAIL: imagecopymerge()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save the image to file and free memory
|
||||||
|
if (!imagejpeg($im, 'image.jpg')) {
|
||||||
|
echo 'FAIL: imagejpeg()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
if (!imagedestroy($im)) {
|
||||||
|
echo 'FAIL: imagedestroy()';
|
||||||
|
unlink('image.jpg');
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove image after test
|
||||||
|
unlink('image.jpg');
|
||||||
|
|
||||||
|
echo 'OK';
|
||||||
67
tests/mods/modules/gd/gd-png.php
Normal file
67
tests/mods/modules/gd/gd-png.php
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
<?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);
|
||||||
|
|
||||||
|
// Create a blank image and add some text
|
||||||
|
if ( ($im = imagecreatetruecolor(640, 480)) === FALSE ) {
|
||||||
|
echo 'FAIL: imagecreatetruecolor()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// First we create our stamp image manually from GD
|
||||||
|
if ( ($stamp = imagecreatetruecolor(100, 70)) === FALSE ) {
|
||||||
|
echo 'FAIL: imagecreatetruecolor()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!imagefilledrectangle($stamp, 0, 0, 99, 69, 0x0000FF)) {
|
||||||
|
echo 'FAIL: imagefilledrectangle()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
if (!imagefilledrectangle($stamp, 9, 9, 90, 60, 0xFFFFFF)) {
|
||||||
|
echo 'FAIL: imagefilledrectangle()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!imagestring($stamp, 5, 20, 20, 'libGD', 0x0000FF)) {
|
||||||
|
echo 'FAIL: imagestring()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
if (!imagestring($stamp, 3, 20, 40, '(c) 2007-9', 0x0000FF)) {
|
||||||
|
echo 'FAIL: imagestring()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Set the margins for the stamp and get the height/width of the stamp image
|
||||||
|
$marge_right = 10;
|
||||||
|
$marge_bottom = 10;
|
||||||
|
$sx = imagesx($stamp);
|
||||||
|
$sy = imagesy($stamp);
|
||||||
|
|
||||||
|
// Merge the stamp onto our photo with an opacity of 50%
|
||||||
|
if (!imagecopymerge($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp), 50)) {
|
||||||
|
echo 'FAIL: imagecopymerge()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save the image to file and free memory
|
||||||
|
if (!imagepng($im, 'image.png')) {
|
||||||
|
echo 'FAIL: imagepng()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
if (!imagedestroy($im)) {
|
||||||
|
echo 'FAIL: imagedestroy()';
|
||||||
|
unlink('image.png');
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove image after test
|
||||||
|
unlink('image.png');
|
||||||
|
|
||||||
|
echo 'OK';
|
||||||
18
tests/mods/modules/gd/gd-ttf-cyrillic.php
Normal file
18
tests/mods/modules/gd/gd-ttf-cyrillic.php
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?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);
|
||||||
|
|
||||||
|
|
||||||
|
$dir = realpath(dirname(__FILE__));
|
||||||
|
$font = $dir . DIRECTORY_SEPARATOR . 'ptsans-regular.ttf';
|
||||||
|
|
||||||
|
if ( ($bbox = imagettfbbox(10, 0, $font, 'текст на русском языке не работает')) === FALSE ) {
|
||||||
|
echo 'FAIL: imagettfbox()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
echo 'OK';
|
||||||
50
tests/mods/modules/gd/gd-webp.php
Normal file
50
tests/mods/modules/gd/gd-webp.php
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
<?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 5.4.0
|
||||||
|
if (version_compare(PHP_VERSION, '5.4.0', '<')) {
|
||||||
|
echo 'SKIP';
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Create a blank image and add some text
|
||||||
|
if ( ($im = imagecreatetruecolor(120, 20)) === FALSE ) {
|
||||||
|
echo 'FAIL: imagecreatetruecolor()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ($text_color = imagecolorallocate($im, 233, 14, 91)) === FALSE ) {
|
||||||
|
echo 'FAIL: imagecolorallocate()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!imagestring($im, 1, 5, 5, 'WebP with PHP', $text_color)) {
|
||||||
|
echo 'FAIL: imagestring()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save the image
|
||||||
|
if (!imagewebp($im, 'image.webp')) {
|
||||||
|
echo 'FAIL: imagewebp()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Free up memory
|
||||||
|
if (!imagedestroy($im)) {
|
||||||
|
echo 'FAIL: imagedestroy()';
|
||||||
|
unlink('image.webp');
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove image after test
|
||||||
|
unlink('image.webp');
|
||||||
|
|
||||||
|
echo 'OK';
|
||||||
16
tests/mods/modules/gd/gd-xpm.php
Normal file
16
tests/mods/modules/gd/gd-xpm.php
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<?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);
|
||||||
|
|
||||||
|
// Check for XPM support
|
||||||
|
// https://www.php.net/manual/en/function.imagetypes.php
|
||||||
|
if (!(imagetypes() & IMG_XPM)) {
|
||||||
|
echo 'FAIL: No XMP support';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
echo 'OK';
|
||||||
BIN
tests/mods/modules/gd/ptsans-regular.ttf
Normal file
BIN
tests/mods/modules/gd/ptsans-regular.ttf
Normal file
Binary file not shown.
BIN
tests/mods/modules/imagick/dummy.pdf
Normal file
BIN
tests/mods/modules/imagick/dummy.pdf
Normal file
Binary file not shown.
52
tests/mods/modules/imagick/imagick-jpeg.php
Normal file
52
tests/mods/modules/imagick/imagick-jpeg.php
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
<?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);
|
||||||
|
|
||||||
|
$PHP_VERSION = str_replace('-dev', '', PHP_VERSION);
|
||||||
|
|
||||||
|
// Only available since 5.3.0 (PHP 5.3 and 5.4 segfaults)
|
||||||
|
if (version_compare($PHP_VERSION, '5.5.0', '<')) {
|
||||||
|
echo 'SKIP';
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
// FIXME: Currently not supported on PHP 8
|
||||||
|
if (version_compare($PHP_VERSION, '8.0.0', '>=')) {
|
||||||
|
echo 'SKIP';
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set width and height in proportion of genuine PHP logo */
|
||||||
|
$width = 400;
|
||||||
|
$height = 210;
|
||||||
|
|
||||||
|
/* Create an Imagick object with transparent canvas */
|
||||||
|
$img = new Imagick();
|
||||||
|
|
||||||
|
if ($img->newImage($width, $height, new ImagickPixel('transparent')) !== TRUE) {
|
||||||
|
echo 'FAIL: newImage()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* New ImagickDraw instance for ellipse draw */
|
||||||
|
$draw = new ImagickDraw();
|
||||||
|
/* Set purple fill color for ellipse */
|
||||||
|
$draw->setFillColor('#777bb4');
|
||||||
|
/* Set ellipse dimensions */
|
||||||
|
$draw->ellipse($width / 2, $height / 2, $width / 2, $height / 2, 0, 360);
|
||||||
|
/* Draw ellipse onto the canvas */
|
||||||
|
$img->drawImage($draw);
|
||||||
|
|
||||||
|
/* Reset fill color from purple to black for text (note: we are reusing ImagickDraw object) */
|
||||||
|
$draw->setFillColor('black');
|
||||||
|
|
||||||
|
if ($img->setImageFormat('jpeg') !== TRUE) {
|
||||||
|
echo 'FAIL: setImageFormat()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo 'OK';
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user