Merge pull request #880 from cytopia/release/v2.0.0

Release/v2.0.0
This commit is contained in:
cytopia 2022-03-28 20:44:37 +02:00 committed by GitHub
commit 68541d76ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 1451 additions and 1305 deletions

View File

@ -13,8 +13,8 @@ error_reporting(-1);
putenv('RES_OPTIONS=retrans:1 retry:1 timeout:1 attempts:1');
$DEVILBOX_VERSION = 'v1.11.0';
$DEVILBOX_DATE = '2022-03-22';
$DEVILBOX_VERSION = 'v2.0.0';
$DEVILBOX_DATE = '2022-03-28';
$DEVILBOX_API_PAGE = 'devilbox-api/status.json';
//

View File

@ -1,228 +0,0 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: Linux
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
# Runs on Pull Requests
pull_request:
# Runs on master Branch and Tags
push:
branches:
- master
tags:
- '[0-9]+.[0-9]+*'
# -------------------------------------------------------------------------------------------------
# What to run
# -------------------------------------------------------------------------------------------------
jobs:
smoke_linux:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php:
- "5.3"
- "5.4"
- "5.5"
- "5.6"
- "7.0"
- "7.1"
- "7.2"
- "7.3"
- "7.4"
- "8.0"
- "8.1"
- "8.2"
httpd:
- "apache-2.2"
- "apache-2.4"
- "nginx-stable"
- "nginx-mainline"
name: "[PHP ${{ matrix.php }}] vs [${{ matrix.httpd }}]"
steps:
# ------------------------------------------------------------
# Checkout repository
# ------------------------------------------------------------
- name: Checkout repository
uses: actions/checkout@v1
- name: Show environment
shell: bash
run: |
env
- name: Show network
shell: bash
run: |
netstat -an || true
ss -tlun || true
- name: Show Docker version
shell: bash
run: |
docker version
# ------------------------------------------------------------
# Setup
# ------------------------------------------------------------
- name: Configure
shell: bash
run: |
cd .tests/
# Set the two candidates to test against
make configure KEY=PHP_SERVER VAL=${PHP}
make configure KEY=HTTPD_SERVER VAL=${HTTPD}
# 3306 is taken, so chose another one
make configure KEY=HOST_PORT_MYSQL VAL=3307
env:
PHP: ${{ matrix.php }}
HTTPD: ${{ matrix.httpd }}
- name: Pull images
shell: bash
run: |
cd .tests/
make pull
- name: Startup
shell: bash
run: |
cd .tests/
make start
- name: Docker logs
shell: bash
run: |
cd .tests/
make logs
# ------------------------------------------------------------
# Run tests
# ------------------------------------------------------------
- name: Test Modules
shell: bash
run: |
cd .tests/
make test-smoke-modules
if: success() || failure()
- name: Test Config
shell: bash
run: |
cd .tests/
make test-smoke-config
if: success() || failure()
- name: Test Intranet
shell: bash
run: |
cd .tests/
make test-smoke-intranet
if: success() || failure()
- name: Test Vendors
shell: bash
run: |
cd .tests/
make test-smoke-vendors
if: success() || failure()
- name: Test Vhosts
shell: bash
run: |
cd .tests/
make test-smoke-vhosts
if: success() || failure()
- name: Test Reverse Proxy
shell: bash
run: |
cd .tests/
make test-smoke-rproxies
if: success() || failure()
- name: Test SSL
shell: bash
run: |
cd .tests/
make test-smoke-ssl
if: success() || failure()
- name: Test Bind
shell: bash
run: |
cd .tests/
make test-smoke-bind
if: success() || failure()
- name: Test Autostart
shell: bash
run: |
cd .tests/
make test-smoke-autostart
if: success() || failure()
- name: "Test Framework: CakePHP"
shell: bash
run: |
cd .tests/
make test-smoke-framework-cakephp
if: success() || failure()
- name: "Test Framework: Drupal"
shell: bash
run: |
cd .tests/
make test-smoke-framework-drupal
if: success() || failure()
- name: "Test Framework: Wordpress"
shell: bash
run: |
cd .tests/
make test-smoke-framework-wordpress
if: success() || failure()
- name: "Test Container"
shell: bash
run: |
retry() {
for n in $(seq 5); do
echo "[${n}/5] ${*}";
if eval "${*}"; then
echo "[SUCC] ${n}/5";
return 0;
fi;
sleep 5;
echo "[FAIL] ${n}/5";
done;
return 1;
}
cd .tests/
retry make test-smoke-container
if: success() || failure()
# ------------------------------------------------------------
# Finish
# ------------------------------------------------------------
- name: "Finish: Docker logs"
shell: bash
run: |
cd .tests/
make logs
if: success() || failure()

View File

@ -1,262 +0,0 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: MacOS
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
# Runs on Pull Requests
pull_request:
# Runs on master Branch and Tags
push:
branches:
- master
tags:
- '[0-9]+.[0-9]+*'
# -------------------------------------------------------------------------------------------------
# What to run
# -------------------------------------------------------------------------------------------------
jobs:
smoke_macos:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
php:
- "7.2"
httpd:
- "nginx-stable"
name: "[PHP ${{ matrix.php }}] vs [${{ matrix.httpd }}]"
steps:
# ------------------------------------------------------------
# Checkout repository
# ------------------------------------------------------------
- name: Checkout repository
uses: actions/checkout@v1
- name: "[Pre] Install Requirements"
shell: bash
run: |
brew install coreutils
brew install bash
brew install socat
- name: "[Pre] Install Docker"
shell: bash
run: |
brew install docker docker-machine-driver-xhyve
sudo chown root:wheel $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
sudo chmod u+s $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
while ! docker-machine create --driver xhyve default; do
docker-machine rm -f default
sleep 1;
done
# Export variable (this target)
eval "$(docker-machine env default)"
DOCKER_TLS_VERIFY="$( docker-machine env default | grep DOCKER_TLS_VERIFY | sed -e 's/.*="//g' -e 's/"$//g' )"
DOCKER_HOST="$( docker-machine env default | grep DOCKER_HOST | sed -e 's/.*="//g' -e 's/"$//g' )"
DOCKER_CERT_PATH="$( docker-machine env default | grep DOCKER_CERT_PATH | sed -e 's/.*="//g' -e 's/"$//g' )"
DOCKER_MACHINE_NAME="$( docker-machine env default | grep DOCKER_MACHINE_NAME | sed -e 's/.*="//g' -e 's/"$//g' )"
# Export variable (this other targets)
# https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#set-an-environment-variable-set-env
echo ::set-env name=DOCKER_TLS_VERIFY::${DOCKER_TLS_VERIFY}
echo ::set-env name=DOCKER_HOST::${DOCKER_HOST}
echo ::set-env name=DOCKER_CERT_PATH::${DOCKER_CERT_PATH}
echo ::set-env name=DOCKER_MACHINE_NAME::${DOCKER_MACHINE_NAME}
# Show info
docker-machine ls
docker-machine env default
docker version
- name: "[Pre] Install Docker Compose"
shell: bash
run: |
sudo curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose version
- name: "[Pre] Setup Docker machine"
shell: bash
run: |
# Setup DNS records
echo "127.0.0.1 localhost" | sudo tee -a /etc/hosts
# Portforwarding from DOCKER_HOST to local
HOST="$( echo "${DOCKER_HOST}" | sed -e 's|^tcp://||g' -e 's|:.*||g' )"
echo "${HOST}"
sudo socat -s -d -d tcp-listen:80,reuseaddr,fork tcp:${HOST}:80 &
sleep 2
sudo socat -s -d -d tcp-listen:443,reuseaddr,fork tcp:${HOST}:443 &
sleep 2
if ! netstat -an | grep -i LISTEN | grep -E '(:80)|(\.80)\s'; then
netstat -an | grep -i LISTEN;
false;
fi
if ! netstat -an | grep -i LISTEN | grep -E '(:443)|(\.443)\s'; then
netstat -an | grep -i LISTEN;
false;
fi
host localhost
curl -sS -I 'http://localhost:80' || true
curl -sS -I 'https://localhost:443' || true
- name: "[Info] Show environment"
shell: bash
run: |
env
if: success() || failure()
- name: "[Info] Show network"
shell: bash
run: |
netstat -an || true
ss -tlun || true
if: success() || failure()
# ------------------------------------------------------------
# Setup
# ------------------------------------------------------------
- name: Configure
shell: bash
run: |
cd .tests/
# Set the two candidates to test against
make configure KEY=PHP_SERVER VAL=${PHP}
make configure KEY=HTTPD_SERVER VAL=${HTTPD}
# 3306 is taken, so chose another one
make configure KEY=HOST_PORT_MYSQL VAL=3307
env:
PHP: ${{ matrix.php }}
HTTPD: ${{ matrix.httpd }}
if: success() || failure()
- name: Pull images
shell: bash
run: |
cd .tests/
make pull
if: success() || failure()
- name: Startup
shell: bash
run: |
cd .tests/
make start
if: success() || failure()
- name: Docker logs
shell: bash
run: |
cd .tests/
make logs
if: success() || failure()
# ------------------------------------------------------------
# Run tests
# ------------------------------------------------------------
- name: Test Modules
shell: bash
run: |
cd .tests/
make test-smoke-modules
if: success() || failure()
- name: Test Config
shell: bash
run: |
cd .tests/
make test-smoke-config
if: success() || failure()
- name: Test Intranet
shell: bash
run: |
cd .tests/
make test-smoke-intranet
if: success() || failure()
- name: Test Vendors
shell: bash
run: |
cd .tests/
make test-smoke-vendors
if: success() || failure()
- name: Test Vhosts
shell: bash
run: |
cd .tests/
make test-smoke-vhosts
if: success() || failure()
- name: Test Reverse Proxy
shell: bash
run: |
cd .tests/
make test-smoke-rproxies
if: success() || failure()
- name: Test SSL
shell: bash
run: |
cd .tests/
make test-smoke-ssl
if: success() || failure()
- name: Test Bind
shell: bash
run: |
cd .tests/
make test-smoke-bind
if: success() || failure()
- name: Test Autostart
shell: bash
run: |
cd .tests/
make test-smoke-autostart
if: success() || failure()
- name: "Test Framework: CakePHP"
shell: bash
run: |
cd .tests/
make test-smoke-framework-cakephp
if: success() || failure()
- name: "Test Framework: Drupal"
shell: bash
run: |
cd .tests/
make test-smoke-framework-drupal
if: success() || failure()
- name: "Test Framework: Wordpress"
shell: bash
run: |
cd .tests/
make test-smoke-framework-wordpress
if: success() || failure()
# ------------------------------------------------------------
# Finish
# ------------------------------------------------------------
- name: "[Post] Docker logs"
shell: bash
run: |
cd .tests/
make logs
if: success() || failure()

View File

@ -17,7 +17,6 @@ on:
push:
branches:
- master
tags:
# -------------------------------------------------------------------------------------------------
@ -25,9 +24,7 @@ on:
# -------------------------------------------------------------------------------------------------
jobs:
docs:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
@ -46,24 +43,9 @@ jobs:
uses: actions/checkout@v1
- name: Check documentation
shell: bash
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;
}
cd docs
retry make ${TARGET}
env:
TARGET: ${{ matrix.target }}
RETRIES: 20
PAUSE: 10
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 5
workdir: "${{ github.workspace }}/docs/"
command: |
make ${{ matrix.target }}

View File

@ -17,7 +17,6 @@ on:
push:
branches:
- master
tags:
# -------------------------------------------------------------------------------------------------

59
.github/workflows/params-httpd.yml vendored Normal file
View File

@ -0,0 +1,59 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: params
# -------------------------------------------------------------------------------------------------
# Custom Variables
# -------------------------------------------------------------------------------------------------
env:
# Note: Older PHP versions use an older version of phpPgMyAdmin, which does not work with later
# PgSQL server versions. That's why we need to tell those combinations to use an old PgSQL server
MATRIX: >-
[
{"HTTPD_SERVER": "apache-2.2", "HTTPD_FLAVOUR": "alpine"},
{"HTTPD_SERVER": "apache-2.2", "HTTPD_FLAVOUR": "debian"},
{"HTTPD_SERVER": "apache-2.4", "HTTPD_FLAVOUR": "alpine"},
{"HTTPD_SERVER": "apache-2.4", "HTTPD_FLAVOUR": "debian"},
{"HTTPD_SERVER": "nginx-stable", "HTTPD_FLAVOUR": "alpine"},
{"HTTPD_SERVER": "nginx-stable", "HTTPD_FLAVOUR": "debian"},
{"HTTPD_SERVER": "nginx-mainline", "HTTPD_FLAVOUR": "alpine"},
{"HTTPD_SERVER": "nginx-mainline", "HTTPD_FLAVOUR": "debian"}
]
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
workflow_call:
outputs:
matrix:
description: "The determined version matrix"
value: ${{ jobs.params.outputs.matrix }}
jobs:
params:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: "[Set-Output] Matrix"
id: set-matrix
run: |
echo "::set-output name=matrix::$( echo '${{ env.MATRIX }}' | jq -M -c )"
- name: "[DEBUG] Show settings'"
run: |
echo 'Matrix'
echo '--------------------'
echo '${{ steps.set-matrix.outputs.matrix }}'
echo

54
.github/workflows/params-memcd.yml vendored Normal file
View File

@ -0,0 +1,54 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: params
# -------------------------------------------------------------------------------------------------
# Custom Variables
# -------------------------------------------------------------------------------------------------
env:
MATRIX: >-
[
{"MEMCD_SERVER": "Memcd 1.4"},
{"MEMCD_SERVER": "Memcd 1.4-alpine"},
{"MEMCD_SERVER": "Memcd 1.5"},
{"MEMCD_SERVER": "Memcd 1.5-alpine"},
{"MEMCD_SERVER": "Memcd 1.6"},
{"MEMCD_SERVER": "Memcd 1.6-alpine"},
{"MEMCD_SERVER": "Memcd latest"},
{"MEMCD_SERVER": "Memcd alpine"}
]
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
workflow_call:
outputs:
matrix:
description: "The determined version matrix"
value: ${{ jobs.params.outputs.matrix }}
jobs:
params:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: "[Set-Output] Matrix"
id: set-matrix
run: |
echo "::set-output name=matrix::$( echo '${{ env.MATRIX }}' | jq -M -c )"
- name: "[DEBUG] Show settings'"
run: |
echo 'Matrix'
echo '--------------------'
echo '${{ steps.set-matrix.outputs.matrix }}'
echo

56
.github/workflows/params-mongo.yml vendored Normal file
View File

@ -0,0 +1,56 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: params
# -------------------------------------------------------------------------------------------------
# Custom Variables
# -------------------------------------------------------------------------------------------------
env:
# CI for Mongo 2.8 and Mongo 3.0 removed due to local segfault and non-segfault, but error in CI
# https://github.com/docker-library/mongo/issues/251
#
# CI for Mongo 3.2 and 3.4 removed due to non-reproducible error in CI
MATRIX: >-
[
{"MONGO_SERVER": "Mongo 3.6"},
{"MONGO_SERVER": "Mongo 4.0"},
{"MONGO_SERVER": "Mongo 4.2"},
{"MONGO_SERVER": "Mongo 4.4"},
{"MONGO_SERVER": "Mongo 5.0"},
{"MONGO_SERVER": "Mongo latest"}
]
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
workflow_call:
outputs:
matrix:
description: "The determined version matrix"
value: ${{ jobs.params.outputs.matrix }}
jobs:
params:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: "[Set-Output] Matrix"
id: set-matrix
run: |
echo "::set-output name=matrix::$( echo '${{ env.MATRIX }}' | jq -M -c )"
- name: "[DEBUG] Show settings'"
run: |
echo 'Matrix'
echo '--------------------'
echo '${{ steps.set-matrix.outputs.matrix }}'
echo

64
.github/workflows/params-mysql.yml vendored Normal file
View File

@ -0,0 +1,64 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: params
# -------------------------------------------------------------------------------------------------
# Custom Variables
# -------------------------------------------------------------------------------------------------
env:
MATRIX: >-
[
{"MYSQL_SERVER": "mysql-5.5"},
{"MYSQL_SERVER": "mysql-5.6"},
{"MYSQL_SERVER": "mysql-5.7"},
{"MYSQL_SERVER": "mysql-8.0"},
{"MYSQL_SERVER": "percona-5.5"},
{"MYSQL_SERVER": "percona-5.6"},
{"MYSQL_SERVER": "percona-5.7"},
{"MYSQL_SERVER": "percona-8.0"},
{"MYSQL_SERVER": "mariadb-5.5"},
{"MYSQL_SERVER": "mariadb-10.0"},
{"MYSQL_SERVER": "mariadb-10.1"},
{"MYSQL_SERVER": "mariadb-10.2"},
{"MYSQL_SERVER": "mariadb-10.3"},
{"MYSQL_SERVER": "mariadb-10.4"},
{"MYSQL_SERVER": "mariadb-10.5"},
{"MYSQL_SERVER": "mariadb-10.6"},
{"MYSQL_SERVER": "mariadb-10.7"},
{"MYSQL_SERVER": "mariadb-10.8"}
]
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
workflow_call:
outputs:
matrix:
description: "The determined version matrix"
value: ${{ jobs.params.outputs.matrix }}
jobs:
params:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: "[Set-Output] Matrix"
id: set-matrix
run: |
echo "::set-output name=matrix::$( echo '${{ env.MATRIX }}' | jq -M -c )"
- name: "[DEBUG] Show settings'"
run: |
echo 'Matrix'
echo '--------------------'
echo '${{ steps.set-matrix.outputs.matrix }}'
echo

70
.github/workflows/params-pgsql.yml vendored Normal file
View File

@ -0,0 +1,70 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: params
# -------------------------------------------------------------------------------------------------
# Custom Variables
# -------------------------------------------------------------------------------------------------
env:
MATRIX: >-
[
{"PGSQL_SERVER": "PgSQL 9.0"},
{"PGSQL_SERVER": "PgSQL 9.1"},
{"PGSQL_SERVER": "PgSQL 9.2"},
{"PGSQL_SERVER": "PgSQL 9.2-alpine"},
{"PGSQL_SERVER": "PgSQL 9.3"},
{"PGSQL_SERVER": "PgSQL 9.3-alpine"},
{"PGSQL_SERVER": "PgSQL 9.4"},
{"PGSQL_SERVER": "PgSQL 9.4-alpine"},
{"PGSQL_SERVER": "PgSQL 9.5"},
{"PGSQL_SERVER": "PgSQL 9.5-alpine"},
{"PGSQL_SERVER": "PgSQL 9.6"},
{"PGSQL_SERVER": "PgSQL 9.6-alpine"},
{"PGSQL_SERVER": "PgSQL 10"},
{"PGSQL_SERVER": "PgSQL 10-alpine"},
{"PGSQL_SERVER": "PgSQL 11"},
{"PGSQL_SERVER": "PgSQL 11-alpine"},
{"PGSQL_SERVER": "PgSQL 12"},
{"PGSQL_SERVER": "PgSQL 12-alpine"},
{"PGSQL_SERVER": "PgSQL 13"},
{"PGSQL_SERVER": "PgSQL 13-alpine"},
{"PGSQL_SERVER": "PgSQL 14"},
{"PGSQL_SERVER": "PgSQL 14-alpine"},
{"PGSQL_SERVER": "PgSQL latest"},
{"PGSQL_SERVER": "PgSQL alpine"}
]
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
workflow_call:
outputs:
matrix:
description: "The determined version matrix"
value: ${{ jobs.params.outputs.matrix }}
jobs:
params:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: "[Set-Output] Matrix"
id: set-matrix
run: |
echo "::set-output name=matrix::$( echo '${{ env.MATRIX }}' | jq -M -c )"
- name: "[DEBUG] Show settings'"
run: |
echo 'Matrix'
echo '--------------------'
echo '${{ steps.set-matrix.outputs.matrix }}'
echo

99
.github/workflows/params-php.yml vendored Normal file
View File

@ -0,0 +1,99 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: params
# -------------------------------------------------------------------------------------------------
# Custom Variables
# -------------------------------------------------------------------------------------------------
env:
# Note: Older PHP versions use an older version of phpPgMyAdmin, which does not work with later
# PgSQL server versions. That's why we need to tell those combinations to use an old PgSQL server
MATRIX: >-
[
{"PHP_SERVER": "PHP 5.3", "HTTPD_SERVER": "apache-2.2", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 5.4", "HTTPD_SERVER": "apache-2.2", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 5.5", "HTTPD_SERVER": "apache-2.2", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 5.6", "HTTPD_SERVER": "apache-2.2", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 7.0", "HTTPD_SERVER": "apache-2.2", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 7.1", "HTTPD_SERVER": "apache-2.2", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 7.2", "HTTPD_SERVER": "apache-2.2"},
{"PHP_SERVER": "PHP 7.3", "HTTPD_SERVER": "apache-2.2"},
{"PHP_SERVER": "PHP 7.4", "HTTPD_SERVER": "apache-2.2"},
{"PHP_SERVER": "PHP 8.0", "HTTPD_SERVER": "apache-2.2"},
{"PHP_SERVER": "PHP 8.1", "HTTPD_SERVER": "apache-2.2"},
{"PHP_SERVER": "PHP 8.2", "HTTPD_SERVER": "apache-2.2"},
{"PHP_SERVER": "PHP 5.3", "HTTPD_SERVER": "apache-2.4", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 5.4", "HTTPD_SERVER": "apache-2.4", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 5.5", "HTTPD_SERVER": "apache-2.4", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 5.6", "HTTPD_SERVER": "apache-2.4", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 7.0", "HTTPD_SERVER": "apache-2.4", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 7.1", "HTTPD_SERVER": "apache-2.4", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 7.2", "HTTPD_SERVER": "apache-2.4"},
{"PHP_SERVER": "PHP 7.3", "HTTPD_SERVER": "apache-2.4"},
{"PHP_SERVER": "PHP 7.4", "HTTPD_SERVER": "apache-2.4"},
{"PHP_SERVER": "PHP 8.0", "HTTPD_SERVER": "apache-2.4"},
{"PHP_SERVER": "PHP 8.1", "HTTPD_SERVER": "apache-2.4"},
{"PHP_SERVER": "PHP 8.2", "HTTPD_SERVER": "apache-2.4"},
{"PHP_SERVER": "PHP 5.3", "HTTPD_SERVER": "nginx-stable", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 5.4", "HTTPD_SERVER": "nginx-stable", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 5.5", "HTTPD_SERVER": "nginx-stable", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 5.6", "HTTPD_SERVER": "nginx-stable", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 7.0", "HTTPD_SERVER": "nginx-stable", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 7.1", "HTTPD_SERVER": "nginx-stable", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 7.2", "HTTPD_SERVER": "nginx-stable"},
{"PHP_SERVER": "PHP 7.3", "HTTPD_SERVER": "nginx-stable"},
{"PHP_SERVER": "PHP 7.4", "HTTPD_SERVER": "nginx-stable"},
{"PHP_SERVER": "PHP 8.0", "HTTPD_SERVER": "nginx-stable"},
{"PHP_SERVER": "PHP 8.1", "HTTPD_SERVER": "nginx-stable"},
{"PHP_SERVER": "PHP 8.2", "HTTPD_SERVER": "nginx-stable"},
{"PHP_SERVER": "PHP 5.3", "HTTPD_SERVER": "nginx-mainline", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 5.4", "HTTPD_SERVER": "nginx-mainline", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 5.5", "HTTPD_SERVER": "nginx-mainline", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 5.6", "HTTPD_SERVER": "nginx-mainline", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 7.0", "HTTPD_SERVER": "nginx-mainline", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 7.1", "HTTPD_SERVER": "nginx-mainline", "PGSQL_SERVER": "PgSQL 12"},
{"PHP_SERVER": "PHP 7.2", "HTTPD_SERVER": "nginx-mainline"},
{"PHP_SERVER": "PHP 7.3", "HTTPD_SERVER": "nginx-mainline"},
{"PHP_SERVER": "PHP 7.4", "HTTPD_SERVER": "nginx-mainline"},
{"PHP_SERVER": "PHP 8.0", "HTTPD_SERVER": "nginx-mainline"},
{"PHP_SERVER": "PHP 8.1", "HTTPD_SERVER": "nginx-mainline"},
{"PHP_SERVER": "PHP 8.2", "HTTPD_SERVER": "nginx-mainline"}
]
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
workflow_call:
outputs:
matrix:
description: "The determined version matrix"
value: ${{ jobs.params.outputs.matrix }}
jobs:
params:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: "[Set-Output] Matrix"
id: set-matrix
run: |
echo "::set-output name=matrix::$( echo '${{ env.MATRIX }}' | jq -M -c )"
- name: "[DEBUG] Show settings'"
run: |
echo 'Matrix'
echo '--------------------'
echo '${{ steps.set-matrix.outputs.matrix }}'
echo

61
.github/workflows/params-redis.yml vendored Normal file
View File

@ -0,0 +1,61 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: params
# -------------------------------------------------------------------------------------------------
# Custom Variables
# -------------------------------------------------------------------------------------------------
env:
MATRIX: >-
[
{"REDIS_SERVER": "Redis 2.8"},
{"REDIS_SERVER": "Redis 3.0"},
{"REDIS_SERVER": "Redis 3.0-alpine"},
{"REDIS_SERVER": "Redis 3.2"},
{"REDIS_SERVER": "Redis 3.2-alpine"},
{"REDIS_SERVER": "Redis 4.0"},
{"REDIS_SERVER": "Redis 4.0-alpine"},
{"REDIS_SERVER": "Redis 5.0"},
{"REDIS_SERVER": "Redis 5.0-alpine"},
{"REDIS_SERVER": "Redis 6.0"},
{"REDIS_SERVER": "Redis 6.0-alpine"},
{"REDIS_SERVER": "Redis 6.2"},
{"REDIS_SERVER": "Redis 6.2-alpine"},
{"REDIS_SERVER": "Redis latest"},
{"REDIS_SERVER": "Redis alpine"}
]
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
workflow_call:
outputs:
matrix:
description: "The determined version matrix"
value: ${{ jobs.params.outputs.matrix }}
jobs:
params:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: "[Set-Output] Matrix"
id: set-matrix
run: |
echo "::set-output name=matrix::$( echo '${{ env.MATRIX }}' | jq -M -c )"
- name: "[DEBUG] Show settings'"
run: |
echo 'Matrix'
echo '--------------------'
echo '${{ steps.set-matrix.outputs.matrix }}'
echo

View File

@ -1,242 +0,0 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: Config
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
# Runs on Pull Requests
pull_request:
# Runs on master Branch and Tags
push:
branches:
- master
tags:
- '[0-9]+.[0-9]+*'
# -------------------------------------------------------------------------------------------------
# What to run
# -------------------------------------------------------------------------------------------------
jobs:
test_config:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php:
- "5.3"
- "5.4"
- "5.5"
- "5.6"
- "7.0"
- "7.1"
- "7.2"
- "7.3"
- "7.4"
- "8.0"
- "8.1"
- "8.2"
httpd:
- "apache-2.2"
- "apache-2.4"
- "nginx-stable"
- "nginx-mainline"
name: "[PHP ${{ matrix.php }}] vs [${{ matrix.httpd }}]"
steps:
# ------------------------------------------------------------
# Checkout repository
# ------------------------------------------------------------
- name: Checkout repository
uses: actions/checkout@v1
- name: Show environment
shell: bash
run: |
env
- name: Show network
shell: bash
run: |
netstat -an || true
ss -tlun || true
- name: Show Docker version
shell: bash
run: |
docker version
# ------------------------------------------------------------
# Setup
# ------------------------------------------------------------
- name: Configure
shell: bash
run: |
cd .tests/
# Set the two candidates to test against
make configure KEY=PHP_SERVER VAL=${PHP}
make configure KEY=HTTPD_SERVER VAL=${HTTPD}
# 3306 is taken, so chose another one
make configure KEY=HOST_PORT_MYSQL VAL=3307
# Test full customization
make configure KEY=DEBUG_COMPOSE_ENTRYPOINT VAL="$(( RANDOM % 3 ))"
make configure KEY=DOCKER_LOGS VAL="$(( RANDOM % 1 ))"
make configure KEY=TLD_SUFFIX VAL=loc2
make configure KEY=TIMEZONE VAL='Europe/Berlin'
make configure KEY=PHP_MODULES_DISABLE VAL=
make configure KEY=HTTPD_TEMPLATE_DIR VAL=.config
make configure KEY=HOST_PORT_HTTPD VAL=8080
make configure KEY=HOST_PORT_HTTPD_SSL VAL=8443
make configure KEY=MYSQL_ROOT_PASSWORD VAL=mysqlpass
make configure KEY=PGSQL_ROOT_USER VAL=pgroot
make configure KEY=PGSQL_ROOT_PASSWORD VAL=pgsqlpass
make configure KEY=DEVILBOX_VENDOR_PHPMYADMIN_AUTOLOGIN VAL=0
env:
PHP: ${{ matrix.php }}
HTTPD: ${{ matrix.httpd }}
- name: Pull images
shell: bash
run: |
cd .tests/
make pull
- name: Startup
shell: bash
run: |
cd .tests/
make start
- name: Docker logs
shell: bash
run: |
cd .tests/
make logs
# ------------------------------------------------------------
# Run tests
# ------------------------------------------------------------
- name: Test Modules
shell: bash
run: |
cd .tests/
make test-smoke-modules
if: success() || failure()
- name: Test Config
shell: bash
run: |
cd .tests/
make test-smoke-config
if: success() || failure()
- name: Test Intranet
shell: bash
run: |
cd .tests/
make test-smoke-intranet
if: success() || failure()
- name: Test Vendors
shell: bash
run: |
cd .tests/
make test-smoke-vendors
if: success() || failure()
- name: Test Vhosts
shell: bash
run: |
cd .tests/
make test-smoke-vhosts
if: success() || failure()
- name: Test Reverse Proxy
shell: bash
run: |
cd .tests/
make test-smoke-rproxies
if: success() || failure()
- name: Test SSL
shell: bash
run: |
cd .tests/
make test-smoke-ssl
if: success() || failure()
- name: Test Bind
shell: bash
run: |
cd .tests/
make test-smoke-bind
if: success() || failure()
- name: Test Autostart
shell: bash
run: |
cd .tests/
make test-smoke-autostart
if: success() || failure()
- name: "Test Framework: CakePHP"
shell: bash
run: |
cd .tests/
make test-smoke-framework-cakephp
if: success() || failure()
- name: "Test Framework: Drupal"
shell: bash
run: |
cd .tests/
make test-smoke-framework-drupal
if: success() || failure()
- name: "Test Framework: Wordpress"
shell: bash
run: |
cd .tests/
make test-smoke-framework-wordpress
if: success() || failure()
- name: "Test Container"
shell: bash
run: |
retry() {
for n in $(seq 5); do
echo "[${n}/5] ${*}";
if eval "${*}"; then
echo "[SUCC] ${n}/t";
return 0;
fi;
sleep 5;
echo "[FAIL] ${n}/5";
done;
return 1;
}
cd .tests/
retry make test-smoke-container
if: success() || failure()
# ------------------------------------------------------------
# Finish
# ------------------------------------------------------------
- name: "Finish: Docker logs"
shell: bash
run: |
cd .tests/
make logs
if: success() || failure()

53
.github/workflows/test-httpd.yml vendored Normal file
View File

@ -0,0 +1,53 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: Httpd
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
# Runs on Pull Requests
pull_request:
# Runs on master Branch and Tags
push:
branches:
- master
tags:
- '[0-9]+.[0-9]+*'
jobs:
# -----------------------------------------------------------------------------------------------
# (1/3) Determine parameter settings
# -----------------------------------------------------------------------------------------------
params:
uses: ./.github/workflows/params-httpd.yml
# -----------------------------------------------------------------------------------------------
# (2/3) Test with default settings
# -----------------------------------------------------------------------------------------------
default:
needs: [params]
uses: ./.github/workflows/zzz-reuse-tests.yml
with:
matrix: ${{ needs.params.outputs.matrix }}
custom_config: false
operating_system: ubuntu-latest
# -----------------------------------------------------------------------------------------------
# (3/3) Test with customizedt settings
# -----------------------------------------------------------------------------------------------
custom:
needs: [params]
uses: ./.github/workflows/zzz-reuse-tests.yml
with:
matrix: ${{ needs.params.outputs.matrix }}
custom_config: true
operating_system: ubuntu-latest

53
.github/workflows/test-memcd.yml vendored Normal file
View File

@ -0,0 +1,53 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: Memcd
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
# Runs on Pull Requests
pull_request:
# Runs on master Branch and Tags
push:
branches:
- master
tags:
- '[0-9]+.[0-9]+*'
jobs:
# -----------------------------------------------------------------------------------------------
# (1/3) Determine parameter settings
# -----------------------------------------------------------------------------------------------
params:
uses: ./.github/workflows/params-memcd.yml
# -----------------------------------------------------------------------------------------------
# (2/3) Test with default settings
# -----------------------------------------------------------------------------------------------
default:
needs: [params]
uses: ./.github/workflows/zzz-reuse-tests.yml
with:
matrix: ${{ needs.params.outputs.matrix }}
custom_config: false
operating_system: ubuntu-latest
# -----------------------------------------------------------------------------------------------
# (3/3) Test with customizedt settings
# -----------------------------------------------------------------------------------------------
custom:
needs: [params]
uses: ./.github/workflows/zzz-reuse-tests.yml
with:
matrix: ${{ needs.params.outputs.matrix }}
custom_config: true
operating_system: ubuntu-latest

53
.github/workflows/test-mongo.yml vendored Normal file
View File

@ -0,0 +1,53 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: Mongo
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
# Runs on Pull Requests
pull_request:
# Runs on master Branch and Tags
push:
branches:
- master
tags:
- '[0-9]+.[0-9]+*'
jobs:
# -----------------------------------------------------------------------------------------------
# (1/3) Determine parameter settings
# -----------------------------------------------------------------------------------------------
params:
uses: ./.github/workflows/params-mongo.yml
# -----------------------------------------------------------------------------------------------
# (2/3) Test with default settings
# -----------------------------------------------------------------------------------------------
default:
needs: [params]
uses: ./.github/workflows/zzz-reuse-tests.yml
with:
matrix: ${{ needs.params.outputs.matrix }}
custom_config: false
operating_system: ubuntu-latest
# -----------------------------------------------------------------------------------------------
# (3/3) Test with customizedt settings
# -----------------------------------------------------------------------------------------------
custom:
needs: [params]
uses: ./.github/workflows/zzz-reuse-tests.yml
with:
matrix: ${{ needs.params.outputs.matrix }}
custom_config: true
operating_system: ubuntu-latest

53
.github/workflows/test-mysql.yml vendored Normal file
View File

@ -0,0 +1,53 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: MySQL
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
# Runs on Pull Requests
pull_request:
# Runs on master Branch and Tags
push:
branches:
- master
tags:
- '[0-9]+.[0-9]+*'
jobs:
# -----------------------------------------------------------------------------------------------
# (1/3) Determine parameter settings
# -----------------------------------------------------------------------------------------------
params:
uses: ./.github/workflows/params-mysql.yml
# -----------------------------------------------------------------------------------------------
# (2/3) Test with default settings
# -----------------------------------------------------------------------------------------------
default:
needs: [params]
uses: ./.github/workflows/zzz-reuse-tests.yml
with:
matrix: ${{ needs.params.outputs.matrix }}
custom_config: false
operating_system: ubuntu-latest
# -----------------------------------------------------------------------------------------------
# (3/3) Test with customizedt settings
# -----------------------------------------------------------------------------------------------
custom:
needs: [params]
uses: ./.github/workflows/zzz-reuse-tests.yml
with:
matrix: ${{ needs.params.outputs.matrix }}
custom_config: true
operating_system: ubuntu-latest

53
.github/workflows/test-pgsql.yml vendored Normal file
View File

@ -0,0 +1,53 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: PgSQL
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
# Runs on Pull Requests
pull_request:
# Runs on master Branch and Tags
push:
branches:
- master
tags:
- '[0-9]+.[0-9]+*'
jobs:
# -----------------------------------------------------------------------------------------------
# (1/3) Determine parameter settings
# -----------------------------------------------------------------------------------------------
params:
uses: ./.github/workflows/params-pgsql.yml
# -----------------------------------------------------------------------------------------------
# (2/3) Test with default settings
# -----------------------------------------------------------------------------------------------
default:
needs: [params]
uses: ./.github/workflows/zzz-reuse-tests.yml
with:
matrix: ${{ needs.params.outputs.matrix }}
custom_config: false
operating_system: ubuntu-latest
# -----------------------------------------------------------------------------------------------
# (3/3) Test with customizedt settings
# -----------------------------------------------------------------------------------------------
custom:
needs: [params]
uses: ./.github/workflows/zzz-reuse-tests.yml
with:
matrix: ${{ needs.params.outputs.matrix }}
custom_config: true
operating_system: ubuntu-latest

53
.github/workflows/test-php.yml vendored Normal file
View File

@ -0,0 +1,53 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: PHP
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
# Runs on Pull Requests
pull_request:
# Runs on master Branch and Tags
push:
branches:
- master
tags:
- '[0-9]+.[0-9]+*'
jobs:
# -----------------------------------------------------------------------------------------------
# (1/3) Determine parameter settings
# -----------------------------------------------------------------------------------------------
params:
uses: ./.github/workflows/params-php.yml
# -----------------------------------------------------------------------------------------------
# (2/3) Test with default settings
# -----------------------------------------------------------------------------------------------
default:
needs: [params]
uses: ./.github/workflows/zzz-reuse-tests.yml
with:
matrix: ${{ needs.params.outputs.matrix }}
custom_config: false
operating_system: ubuntu-latest
# -----------------------------------------------------------------------------------------------
# (3/3) Test with customizedt settings
# -----------------------------------------------------------------------------------------------
custom:
needs: [params]
uses: ./.github/workflows/zzz-reuse-tests.yml
with:
matrix: ${{ needs.params.outputs.matrix }}
custom_config: true
operating_system: ubuntu-latest

53
.github/workflows/test-redis.yml vendored Normal file
View File

@ -0,0 +1,53 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: Redis
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
# Runs on Pull Requests
pull_request:
# Runs on master Branch and Tags
push:
branches:
- master
tags:
- '[0-9]+.[0-9]+*'
jobs:
# -----------------------------------------------------------------------------------------------
# (1/3) Determine parameter settings
# -----------------------------------------------------------------------------------------------
params:
uses: ./.github/workflows/params-redis.yml
# -----------------------------------------------------------------------------------------------
# (2/3) Test with default settings
# -----------------------------------------------------------------------------------------------
default:
needs: [params]
uses: ./.github/workflows/zzz-reuse-tests.yml
with:
matrix: ${{ needs.params.outputs.matrix }}
custom_config: false
operating_system: ubuntu-latest
# -----------------------------------------------------------------------------------------------
# (3/3) Test with customizedt settings
# -----------------------------------------------------------------------------------------------
custom:
needs: [params]
uses: ./.github/workflows/zzz-reuse-tests.yml
with:
matrix: ${{ needs.params.outputs.matrix }}
custom_config: true
operating_system: ubuntu-latest

View File

@ -1,318 +0,0 @@
---
# -------------------------------------------------------------------------------------------------
# Job Name
# -------------------------------------------------------------------------------------------------
name: Versions
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on:
# Runs on Pull Requests
pull_request:
# Runs on master Branch and Tags
push:
branches:
- master
tags:
- '[0-9]+.[0-9]+*'
# -------------------------------------------------------------------------------------------------
# What to run
# -------------------------------------------------------------------------------------------------
jobs:
smoke_version:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
version:
- "MYSQL_SERVER=mysql-5.5"
- "MYSQL_SERVER=mysql-5.6"
- "MYSQL_SERVER=mysql-5.7"
- "MYSQL_SERVER=mysql-8.0"
- "MYSQL_SERVER=mariadb-5.5"
- "MYSQL_SERVER=mariadb-10.0"
- "MYSQL_SERVER=mariadb-10.1"
- "MYSQL_SERVER=mariadb-10.2"
- "MYSQL_SERVER=mariadb-10.3"
- "MYSQL_SERVER=mariadb-10.4"
- "MYSQL_SERVER=mariadb-10.5"
- "MYSQL_SERVER=mariadb-10.6"
- "MYSQL_SERVER=mariadb-10.7"
- "MYSQL_SERVER=mariadb-10.8"
- "MYSQL_SERVER=percona-5.5"
- "MYSQL_SERVER=percona-5.6"
- "MYSQL_SERVER=percona-5.7"
- "MYSQL_SERVER=percona-8.0"
- "PGSQL_SERVER=9.0"
- "PGSQL_SERVER=9.1"
- "PGSQL_SERVER=9.2"
- "PGSQL_SERVER=9.2-alpine"
- "PGSQL_SERVER=9.3"
- "PGSQL_SERVER=9.3-alpine"
- "PGSQL_SERVER=9.4"
- "PGSQL_SERVER=9.4-alpine"
- "PGSQL_SERVER=9.5"
- "PGSQL_SERVER=9.5-alpine"
- "PGSQL_SERVER=9.6"
- "PGSQL_SERVER=9.6-alpine"
- "PGSQL_SERVER=10.0"
- "PGSQL_SERVER=10.0-alpine"
- "PGSQL_SERVER=10.1"
- "PGSQL_SERVER=10.1-alpine"
- "PGSQL_SERVER=10.2"
- "PGSQL_SERVER=10.2-alpine"
- "PGSQL_SERVER=10.3"
- "PGSQL_SERVER=10.3-alpine"
- "PGSQL_SERVER=10.4"
- "PGSQL_SERVER=10.4-alpine"
- "PGSQL_SERVER=10.5"
- "PGSQL_SERVER=10.5-alpine"
- "PGSQL_SERVER=10.6"
- "PGSQL_SERVER=10.6-alpine"
- "PGSQL_SERVER=11.0"
- "PGSQL_SERVER=11.0-alpine"
- "PGSQL_SERVER=11.1"
- "PGSQL_SERVER=11.1-alpine"
- "PGSQL_SERVER=11.2"
- "PGSQL_SERVER=11.2-alpine"
- "PGSQL_SERVER=11.3"
- "PGSQL_SERVER=11.3-alpine"
- "PGSQL_SERVER=11.4"
- "PGSQL_SERVER=11.4-alpine"
- "PGSQL_SERVER=11.5"
- "PGSQL_SERVER=11.5-alpine"
- "PGSQL_SERVER=11.6"
- "PGSQL_SERVER=11.6-alpine"
- "PGSQL_SERVER=11.7"
- "PGSQL_SERVER=11.7-alpine"
- "PGSQL_SERVER=11.8"
- "PGSQL_SERVER=11.8-alpine"
- "PGSQL_SERVER=11.9"
- "PGSQL_SERVER=11.9-alpine"
- "PGSQL_SERVER=12.0"
- "PGSQL_SERVER=12.0-alpine"
- "PGSQL_SERVER=12.1"
- "PGSQL_SERVER=12.1-alpine"
- "PGSQL_SERVER=12.2"
- "PGSQL_SERVER=12.2-alpine"
- "PGSQL_SERVER=12.3"
- "PGSQL_SERVER=12.3-alpine"
- "PGSQL_SERVER=13.0"
- "PGSQL_SERVER=13.0-alpine"
- "PGSQL_SERVER=latest"
- "PGSQL_SERVER=alpine"
- "REDIS_SERVER=2.8"
- "REDIS_SERVER=3.0"
- "REDIS_SERVER=3.0-alpine"
- "REDIS_SERVER=3.2"
- "REDIS_SERVER=3.2-alpine"
- "REDIS_SERVER=4.0"
- "REDIS_SERVER=4.0-alpine"
- "REDIS_SERVER=5.0"
- "REDIS_SERVER=5.0-alpine"
- "REDIS_SERVER=6.0"
- "REDIS_SERVER=6.0-alpine"
- "REDIS_SERVER=latest"
- "REDIS_SERVER=alpine"
- "MEMCD_SERVER=1.4"
- "MEMCD_SERVER=1.4-alpine"
- "MEMCD_SERVER=1.5"
- "MEMCD_SERVER=1.5-alpine"
- "MEMCD_SERVER=1.6"
- "MEMCD_SERVER=1.6-alpine"
- "MEMCD_SERVER=latest"
- "MEMCD_SERVER=alpine"
- "MONGO_SERVER=2.8"
- "MONGO_SERVER=3.0"
- "MONGO_SERVER=3.2"
- "MONGO_SERVER=3.4"
- "MONGO_SERVER=3.6"
- "MONGO_SERVER=4.0"
- "MONGO_SERVER=4.2"
- "MONGO_SERVER=4.4"
- "MONGO_SERVER=latest"
name: "[${{ matrix.version }}]"
steps:
# ------------------------------------------------------------
# Checkout repository
# ------------------------------------------------------------
- name: Checkout repository
uses: actions/checkout@v1
- name: Show environment
shell: bash
run: |
env
- name: Show network
shell: bash
run: |
netstat -an || true
ss -tlun || true
- name: Show Docker version
shell: bash
run: |
docker version
# ------------------------------------------------------------
# Setup
# ------------------------------------------------------------
- name: Configure
shell: bash
run: |
cd .tests/
# Set the matrix version
make configure KEY="${VERSION//=*/}" VAL="${VERSION//*=}"
# 3306 is taken, so chose another one
make configure KEY=HOST_PORT_MYSQL VAL=3307
env:
VERSION: ${{ matrix.version }}
- name: Pull images
shell: bash
run: |
cd .tests/
make pull
- name: Startup
shell: bash
run: |
cd .tests/
make start
- name: Docker logs
shell: bash
run: |
cd .tests/
make logs
# ------------------------------------------------------------
# Run tests
# ------------------------------------------------------------
- name: Test Modules
shell: bash
run: |
cd .tests/
make test-smoke-modules
if: success() || failure()
- name: Test Config
shell: bash
run: |
cd .tests/
make test-smoke-config
if: success() || failure()
- name: Test Intranet
shell: bash
run: |
cd .tests/
make test-smoke-intranet
if: success() || failure()
- name: Test Vendors
shell: bash
run: |
cd .tests/
make test-smoke-vendors
if: success() || failure()
- name: Test Vhosts
shell: bash
run: |
cd .tests/
make test-smoke-vhosts
if: success() || failure()
- name: Test Reverse Proxy
shell: bash
run: |
cd .tests/
make test-smoke-rproxies
if: success() || failure()
- name: Test SSL
shell: bash
run: |
cd .tests/
make test-smoke-ssl
if: success() || failure()
- name: Test Bind
shell: bash
run: |
cd .tests/
make test-smoke-bind
if: success() || failure()
- name: Test Autostart
shell: bash
run: |
cd .tests/
make test-smoke-autostart
if: success() || failure()
- name: "Test Framework: CakePHP"
shell: bash
run: |
cd .tests/
make test-smoke-framework-cakephp
if: success() || failure()
- name: "Test Framework: Drupal"
shell: bash
run: |
cd .tests/
make test-smoke-framework-drupal
if: success() || failure()
- name: "Test Framework: Wordpress"
shell: bash
run: |
cd .tests/
make test-smoke-framework-wordpress
if: success() || failure()
- name: "Test Container"
shell: bash
run: |
retry() {
for n in $(seq 5); do
echo "[${n}/5] ${*}";
if eval "${*}"; then
echo "[SUCC] ${n}/t";
return 0;
fi;
sleep 5;
echo "[FAIL] ${n}/5";
done;
return 1;
}
cd .tests/
retry make test-smoke-container
if: success() || failure()
# ------------------------------------------------------------
# Finish
# ------------------------------------------------------------
- name: "Finish: Docker logs"
shell: bash
run: |
cd .tests/
make logs
if: success() || failure()

284
.github/workflows/zzz-reuse-tests.yml vendored Normal file
View File

@ -0,0 +1,284 @@
---
name: Reusable worfklow for tests
on:
workflow_call:
###
### Variables
###
inputs:
matrix:
description: 'The test matrix'
required: true
type: string
custom_config:
description: 'Apply customized .env configuration?'
required: true
type: boolean
operating_system:
description: 'The operating system to run on'
required: true
type: string
jobs:
# -----------------------------------------------------------------------------------------------
# JOB: BUILD
# -----------------------------------------------------------------------------------------------
test:
runs-on: ${{ inputs.operating_system }}
strategy:
fail-fast: false
matrix:
include: ${{ fromJson(inputs.matrix) }}
steps:
# ------------------------------------------------------------
# Setup repository
# ------------------------------------------------------------
- name: "[SETUP] Checkout repository (current)"
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: "[DEBUG] Show Matrix configuration"
shell: bash
run: |
echo '${{ toJson(matrix) }}' | jq -r
- name: "[DEBUG] Show env variables"
shell: bash
run: |
env
- name: "[DEBUG] Show open network ports"
shell: bash
run: |
netstat -an || true
ss -tlun || true
- name: "[DEBUG] Show Docker version"
shell: bash
run: |
docker version
- name: "[DEBUG] Show Docker Compose version"
shell: bash
run: |
docker-compose version
# ------------------------------------------------------------
# Configure
# ------------------------------------------------------------
- name: "[Configure] Configure customized configuration"
shell: bash
run: |
cd "${GITHUB_WORKSPACE}/.tests/"
# Test full customization
make configure KEY=DEBUG_COMPOSE_ENTRYPOINT VAL="$(( RANDOM % 3 ))"
make configure KEY=DOCKER_LOGS VAL="$(( RANDOM % 1 ))"
make configure KEY=TLD_SUFFIX VAL=loc2
make configure KEY=TIMEZONE VAL='Europe/Berlin'
make configure KEY=PHP_MODULES_DISABLE VAL=
make configure KEY=HTTPD_TEMPLATE_DIR VAL=.config
make configure KEY=HOST_PORT_HTTPD VAL=8080
make configure KEY=HOST_PORT_HTTPD_SSL VAL=8443
make configure KEY=MYSQL_ROOT_PASSWORD VAL=mysqlpass
make configure KEY=PGSQL_ROOT_USER VAL=pgroot
make configure KEY=PGSQL_ROOT_PASSWORD VAL=pgsqlpass
make configure KEY=DEVILBOX_VENDOR_PHPMYADMIN_AUTOLOGIN VAL=0
if: inputs.custom_config
- name: "[Configure] Configure versions"
shell: bash
run: |
# (1/3) Change to .tests/ directory
cd "${GITHUB_WORKSPACE}/.tests/"
# (2/3) Change MySQL port 3306 to 3307 (3306 is already taken)
make configure KEY=HOST_PORT_MYSQL VAL=3307
# (3/3) Loop over configured values
while IFS= read -r line; do
KEY="${line}"
VAL="$( echo '${{ toJson(matrix) }}' | jq -r ".${KEY}" | awk '{print $NF}' )"
echo "KEY: ${KEY}"
echo "VAL: ${VAL}"
# Set the matrix version
make configure KEY="${KEY}" VAL="${VAL}"
done <<< "$( echo '${{ toJson(matrix) }}' | jq -r 'keys[]' )"
- name: "[Configure] Show .env file"
shell: bash
run: |
cat .env
# ------------------------------------------------------------
# Startup
# ------------------------------------------------------------
- name: "[Startup] Pull images"
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make pull
- name: "[Startup] Start Devilbox"
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make start
- name: "[Startup] Show Docker logs"
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make logs
# ------------------------------------------------------------
# Run tests
# ------------------------------------------------------------
- name: Test Modules
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make test-smoke-modules
- name: Test Config
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make test-smoke-config
if: success() || failure()
- name: Test Intranet
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make test-smoke-intranet
if: success() || failure()
- name: Test Vendors
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make test-smoke-vendors
if: success() || failure()
- name: Test Vhosts
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make test-smoke-vhosts
if: success() || failure()
- name: Test Reverse Proxy
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make test-smoke-rproxies
if: success() || failure()
- name: Test SSL
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make test-smoke-ssl
if: success() || failure()
- name: Test Bind
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make test-smoke-bind
if: success() || failure()
- name: Test Autostart
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make test-smoke-autostart
if: success() || failure()
- name: "Test Framework: CakePHP"
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make test-smoke-framework-cakephp
if: success() || failure()
- name: "Test Framework: Drupal"
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make test-smoke-framework-drupal
if: success() || failure()
- name: "Test Framework: Wordpress"
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make test-smoke-framework-wordpress
if: success() || failure()
- name: "Test Container"
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make test-smoke-container
if: success() || failure()
# ------------------------------------------------------------
# Finish
# ------------------------------------------------------------
- name: "Finish: Docker logs"
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make logs
if: success() || failure()
- name: "Finish: Shutdown"
uses: cytopia/shell-command-retry-action@v0.1.3
with:
retries: 3
workdir: "${{ github.workspace }}/.tests/"
command: |
make stop
if: success() || failure()

View File

@ -160,6 +160,7 @@ test-smoke-autostart:
###
test-smoke-framework-cakephp:
$(PWD)/tests/framework-cakephp.sh
$(PWD)/tests/framework-cakephp-php8.sh
test-smoke-framework-drupal:
$(PWD)/tests/framework-drupal.sh

View File

@ -47,8 +47,7 @@ get_php_version() {
# Check php -v
>&2 printf "Fetching PHP version from php -v: "
if ! cli_version="$( run "docker-compose exec -T php php -v \
| head -1 \
| grep -Eo 'PHP[[:space:]]+[0-9]+\\.[0-9]+' \
| grep -Eo '^PHP[[:space:]]+[0-9]+\\.[0-9]+' \
| grep -Eo '[0-9]+\\.[0-9]+'" \
"${retries}" "${root_path}" "0" )"; then
>&2 printf "FAILED\\n"
@ -118,6 +117,52 @@ replace() {
}
###
### Print colorized OK message
###
print_succ() {
local leading_nl="${1}"
local trailing_nl="${2}"
local message="${3}"
local green="\\033[0;32m"
local reset="\\033[0m"
if [ "${leading_nl}" = "1" ] && [ "${trailing_nl}" = "1" ]; then
printf "\\r${green}[OK]${reset} %s\\n" "${message}"
elif [ "${leading_nl}" = "1" ]; then
printf "\\r${green}[OK]${reset} %s" "${message}"
elif [ "${trailing_nl}" = "1" ]; then
printf "${green}[OK]${reset} %s\\n" "${message}"
else
printf "${green}[OK]${reset} %s" "${message}"
fi
}
###
### Print colorized FAIL message
###
print_fail() {
local leading_nl="${1}"
local trailing_nl="${2}"
local message="${3}"
local red="\\033[0;31m"
local reset="\\033[0m"
if [ "${leading_nl}" = "1" ] && [ "${trailing_nl}" = "1" ]; then
printf "\\r${red}[FAIL]${reset} %s\\n" "${message}"
elif [ "${leading_nl}" = "1" ]; then
printf "\\r${red}[FAIL]${reset} %s" "${message}"
elif [ "${trailing_nl}" = "1" ]; then
printf "${red}[FAIL]${reset} %s\\n" "${message}"
else
printf "${red}[FAIL]${reset} %s" "${message}"
fi
}
###
### Run command
###

View File

@ -53,7 +53,7 @@ until curl -sS -I --fail -o /dev/null -w "%{http_code}" "http://localhost:${HOST
printf "."
i=$(( i + 1 ))
if [ "${i}" -eq "60" ]; then
if [ "${i}" -eq "120" ]; then
printf "[FAIL]\\n\\n"
echo "---- curl From host ----"
curl -sS -v "http://localhost:${HOST_PORT_HTTPD}" || true
@ -84,7 +84,7 @@ until curl -sS --fail "http://localhost:${HOST_PORT_HTTPD}" 2>/dev/null | grep '
printf "."
i=$(( i + 1 ))
if [ "${i}" -eq "60" ]; then
if [ "${i}" -eq "120" ]; then
printf "[FAIL]\\n"
curl -sS -v "http://localhost:${HOST_PORT_HTTPD}"
curl -sS -I "http://localhost:${HOST_PORT_HTTPD}"
@ -120,7 +120,7 @@ until cd "${DVLBOX_PATH}" && docker-compose exec -T php mongofiles --host=mongo
printf "."
i=$(( i + 1 ))
if [ "${i}" -eq "60" ]; then
if [ "${i}" -eq "120" ]; then
printf "[FAIL]\\n"
run "cd ${DVLBOX_PATH} && docker-compose exec -T php mongofiles --host=mongo list" || true
run "cd ${DVLBOX_PATH} && docker-compose logs" || true
@ -143,7 +143,7 @@ until cd "${DVLBOX_PATH}" && docker-compose exec -T php mysql --user=root --pass
printf "."
i=$(( i + 1 ))
if [ "${i}" -eq "60" ]; then
if [ "${i}" -eq "120" ]; then
printf "[FAIL]\\n"
run "cd ${DVLBOX_PATH} && docker-compose exec -T php mysql --user=root --password=\"${MYSQL_ROOT_PASSWORD}\" --host=mysql -e 'show databases;'" || true
run "cd ${DVLBOX_PATH} && docker-compose logs" || true
@ -166,7 +166,7 @@ until cd "${DVLBOX_PATH}" && docker-compose exec -T php pg_isready --host=pgsql
printf "."
i=$(( i + 1 ))
if [ "${i}" -eq "60" ]; then
if [ "${i}" -eq "120" ]; then
printf "[FAIL]\\n"
run "cd ${DVLBOX_PATH} && docker-compose exec -T php pg_isready --host=pgsql" || true
run "cd ${DVLBOX_PATH} && docker-compose logs" || true

View File

@ -0,0 +1,95 @@
#!/usr/bin/env bash
# NOTE: Parsing curl to tac to circumnvent "failed writing body"
# https://stackoverflow.com/questions/16703647/why-curl-return-and-error-23-failed-writing-body
set -e
set -u
set -o pipefail
SCRIPT_PATH="$( cd "$(dirname "$0")" && pwd -P )"
DVLBOX_PATH="$( cd "${SCRIPT_PATH}/../.." && pwd -P )"
# shellcheck disable=SC1090
. "${SCRIPT_PATH}/../scripts/.lib.sh"
RETRIES=10
# see framework-cakephp.sh for PHP <8 tests
DISABLED_VERSIONS=("5.2" "5.3" "5.4" "5.5" "5.6" "7.0" "7.1" "7.2" "7.3" "7.4" "8.2")
PHP_VERSION="$( get_php_version "${DVLBOX_PATH}" )"
###
### What CakePHP Version?
###
CAKE_PHP_VERSION=4.3
echo
echo "# --------------------------------------------------------------------------------------------------"
echo "# [Framework] CakePHP ${CAKE_PHP_VERSION}"
echo "# --------------------------------------------------------------------------------------------------"
echo
# -------------------------------------------------------------------------------------------------
# Pre-check
# -------------------------------------------------------------------------------------------------
if [[ ${DISABLED_VERSIONS[*]} =~ ${PHP_VERSION} ]]; then
printf "[SKIP] Skipping all checks for PHP %s\\n" "${PHP_VERSION}"
exit 0
fi
# -------------------------------------------------------------------------------------------------
# ENTRYPOINT
# -------------------------------------------------------------------------------------------------
###
### Get required env values
###
MYSQL_ROOT_PASSWORD="$( "${SCRIPT_PATH}/../scripts/env-getvar.sh" "MYSQL_ROOT_PASSWORD" )"
TLD_SUFFIX="$( "${SCRIPT_PATH}/../scripts/env-getvar.sh" "TLD_SUFFIX" )"
VHOST="my-cakephp"
# Create vhost dir
create_vhost_dir "${VHOST}"
# Setup CakePHP project
run "docker-compose exec --user devilbox -T php bash -c 'cd /shared/httpd/${VHOST}; composer create-project --no-interaction --prefer-dist cakephp/app:~${CAKE_PHP_VERSION} cakephp'" "${RETRIES}" "${DVLBOX_PATH}"
run "docker-compose exec --user devilbox -T php bash -c 'cd /shared/httpd/${VHOST}; ln -sf cakephp/webroot htdocs'" "${RETRIES}" "${DVLBOX_PATH}"
run "docker-compose exec --user devilbox -T php mysql -u root -h mysql --password=\"${MYSQL_ROOT_PASSWORD}\" -e \"DROP DATABASE IF EXISTS my_cake; CREATE DATABASE my_cake;\"" "${RETRIES}" "${DVLBOX_PATH}"
# Configure CakePHP database settings
run "docker-compose exec --user devilbox -T php sed -i\"\" \"s/'host' =>.*/'host' => 'mysql',/g\" /shared/httpd/${VHOST}/cakephp/config/app_local.php" "${RETRIES}" "${DVLBOX_PATH}"
run "docker-compose exec --user devilbox -T php sed -i\"\" \"s/'username' =>.*/'username' => 'root',/g\" /shared/httpd/${VHOST}/cakephp/config/app_local.php" "${RETRIES}" "${DVLBOX_PATH}"
run "docker-compose exec --user devilbox -T php sed -i\"\" \"s/'password' =>.*/'password' => '${MYSQL_ROOT_PASSWORD}',/g\" /shared/httpd/${VHOST}/cakephp/config/app_local.php" "${RETRIES}" "${DVLBOX_PATH}"
run "docker-compose exec --user devilbox -T php sed -i\"\" \"s/'database' =>.*/'database' => 'my_cake',/g\" /shared/httpd/${VHOST}/cakephp/config/app_local.php" "${RETRIES}" "${DVLBOX_PATH}"
# Test CakePHP
ERROR=0
if ! run "docker-compose exec --user devilbox -T php curl -sS --fail 'http://${VHOST}.${TLD_SUFFIX}' | tac | tac | grep '\"bullet success\"' | grep 'mbstring'" "${RETRIES}" "${DVLBOX_PATH}"; then
ERROR=1
fi
if ! run "docker-compose exec --user devilbox -T php curl -sS --fail 'http://${VHOST}.${TLD_SUFFIX}' | tac | tac | grep '\"bullet success\"' | grep 'openssl'" "${RETRIES}" "${DVLBOX_PATH}"; then
ERROR=1
fi
if ! run "docker-compose exec --user devilbox -T php curl -sS --fail 'http://${VHOST}.${TLD_SUFFIX}' | tac | tac | grep '\"bullet success\"' | grep 'intl'" "${RETRIES}" "${DVLBOX_PATH}"; then
ERROR=1
fi
if ! run "docker-compose exec --user devilbox -T php curl -sS --fail 'http://${VHOST}.${TLD_SUFFIX}' | tac | tac | grep '\"bullet success\"' | grep 'tmp directory'" "${RETRIES}" "${DVLBOX_PATH}"; then
ERROR=1
fi
if ! run "docker-compose exec --user devilbox -T php curl -sS --fail 'http://${VHOST}.${TLD_SUFFIX}' | tac | tac | grep '\"bullet success\"' | grep 'logs directory'" "${RETRIES}" "${DVLBOX_PATH}"; then
ERROR=1
fi
if ! run "docker-compose exec --user devilbox -T php curl -sS --fail 'http://${VHOST}.${TLD_SUFFIX}' | tac | tac | grep '\"bullet success\"' | grep 'connect to the database'" "${RETRIES}" "${DVLBOX_PATH}"; then
ERROR=1
fi
if [ "${ERROR}" = "1" ]; then
run "docker-compose exec --user devilbox -T php curl 'http://${VHOST}.${TLD_SUFFIX}' || true" "1" "${DVLBOX_PATH}"
exit 1
fi

View File

@ -13,6 +13,7 @@ DVLBOX_PATH="$( cd "${SCRIPT_PATH}/../.." && pwd -P )"
. "${SCRIPT_PATH}/../scripts/.lib.sh"
RETRIES=10
# see framework-cakephp-php8.sh for PHP 8+ tests
DISABLED_VERSIONS=("5.2" "5.3" "5.4" "5.5" "8.0" "8.1" "8.2")
PHP_VERSION="$( get_php_version "${DVLBOX_PATH}" )"

View File

@ -60,11 +60,11 @@ if ! URL="$( run "\
| tac \
| grep -Eo '/vendor/phppgadmin-[.0-9]+/'" \
"${RETRIES}" "" "0" )"; then
printf "\\r[FAILED] Retrieve phpPgAdmin URL\\n"
print_fail "1" "1" "Retrieve phpPgAdmin URL"
run "curl -sS 'http://localhost:${HOST_PORT_HTTPD}/index.php' || true"
exit 1
else
printf "\\r[OK] Retrieve phpPgAdmin URL: %s\\n" "${URL}"
print_succ "1" "1" "Retrieve phpPgAdmin URL: ${URL}"
fi
@ -80,18 +80,18 @@ if ! curl -sS --fail "http://localhost:${HOST_PORT_HTTPD}${URL}intro.php" | tac
# 3rd Try
sleep 1
if ! curl -sS --fail "http://localhost:${HOST_PORT_HTTPD}${URL}intro.php" | tac | tac | grep -Eiq "welcome to phpPgAdmin"; then
printf "\\r[FAIL] Fetch %sintro.php\\n" "${URL}"
print_fail "1" "1" "Fetch ${URL}intro.php"
curl -sS "http://localhost:${HOST_PORT_HTTPD}${URL}intro.php" || true
curl -sS -I "http://localhost:${HOST_PORT_HTTPD}${URL}intro.php" || true
exit 1
else
printf "\\r[OK] Fetch %sintro.php (3 rounds)\\n" "${URL}"
print_succ "1" "1" "Fetch ${URL}intro.php (3 rounds)"
fi
else
printf "\\r[OK] Fetch %sintro.php (2 rounds)\\n" "${URL}"
print_succ "1" "1" "Fetch ${URL}intro.php (2 rounds)"
fi
else
printf "\\r[OK] Fetch %sintro.php (1 round)\\n" "${URL}"
print_succ "1" "1" "Fetch ${URL}intro.php (1 round)"
fi
@ -106,46 +106,46 @@ LIBPATH="${DVLBOXPATH}/.devilbox/www/htdocs${URL%index\.php}libraries/lib.inc.ph
printf "[TEST] config.inc.php exists"
if [ ! -f "${CONFIGPATH}" ]; then
printf "\\r[FAIL] config.inc.php exists: no\\n"
print_fail "1" "1" "config.inc.php exists: no"
exit 1
else
printf "\\r[OK] config.inc.php exists: yes\\n"
print_succ "1" "1" "config.inc.php exists: yes"
fi
# $conf['servers'][0]['host'] = 'pgsql';
printf "[TEST] config.inc.php check: \$conf['servers'][0]['host'] = 'pgsql';"
if ! grep -E "^[[:space:]]*\\\$conf\\['servers'\\]\\[0\\]\\['host'\\][[:space:]]*=[[:space:]]*'pgsql';" "${CONFIGPATH}" >/dev/null; then
printf "\\r[FAIL] config.inc.php check: \$conf['servers'][0]['host'] = 'pgsql';\\n"
print_fail "1" "1" "config.inc.php check: \$conf['servers'][0]['host'] = 'pgsql';"
if ! grep 'servers' "${CONFIGPATH}"; then
cat "${CONFIGPATH}"
fi
exit 1
else
printf "\\r[OK] config.inc.php check: \$conf['servers'][0]['host'] = 'pgsql';\\n"
print_succ "1" "1" "config.inc.php check: \$conf['servers'][0]['host'] = 'pgsql';"
fi
# $conf['extra_login_security'] = false;
printf "[TEST] config.inc.php check: \$conf['extra_login_security'] = false;"
if ! grep -E "^[[:space:]]*\\\$conf\\['extra_login_security'\\][[:space:]]*=[[:space:]]*false;" "${CONFIGPATH}" >/dev/null; then
printf "\\r[FAIL] config.inc.php check: \$conf['extra_login_security'] = false;\\n"
print_fail "1" "1" "config.inc.php check: \$conf['extra_login_security'] = false;"
if ! grep 'extra_login_security' "${CONFIGPATH}"; then
cat "${CONFIGPATH}"
fi
exit 1
else
printf "\\r[OK] config.inc.php check: \$conf['extra_login_security'] = false;\\n"
print_succ "1" "1" "config.inc.php check: \$conf['extra_login_security'] = false;"
fi
# error_reporting(E_ERROR | E_WARNING | E_PARSE);
printf "[TEST] lib.inc.php check: error_reporting(E_ERROR | E_WARNING | E_PARSE);"
if ! grep -E "^[[:space:]]*error_reporting\\(E_ERROR[[:space:]]*\\|[[:space:]]*E_WARNING[[:space:]]*\\|[[:space:]]*E_PARSE\\);" "${LIBPATH}" >/dev/null; then
printf "\\r[FAIL] lib.inc.php check: error_reporting(E_ERROR | E_WARNING | E_PARSE);\\n"
print_fail "1" "1" "lib.inc.php check: error_reporting(E_ERROR | E_WARNING | E_PARSE);"
if ! grep 'error_reporting' "${LIBPATH}"; then
cat "${LIBPATH}"
fi
exit 1
else
printf "\\r[OK] lib.inc.php check: error_reporting(E_ERROR | E_WARNING | E_PARSE);\\n"
print_succ "1" "1" "lib.inc.php check: error_reporting(E_ERROR | E_WARNING | E_PARSE);"
fi
@ -163,7 +163,7 @@ if [ "${DEVILBOX_VENDOR_PHPPGADMIN_AUTOLOGIN}" != "1" ]; then
###
printf "[TEST] Retrieve phpPgAdmin token page"
if ! TOKEN_URL="$( run "curl -sS --fail -c cookie.txt 'http://localhost:${HOST_PORT_HTTPD}${URL}servers.php' | tac | tac | grep -Eo '\"redirect\\.php\\?subject=server.+\"' " "${RETRIES}" "" "0" )"; then
printf "\\r[FAIL] Retrieve phpPgAdmin login page\\n"
print_fail "1" "1" "Retrieve phpPgAdmin login page"
run "curl -sS 'http://localhost:${HOST_PORT_HTTPD}${URL}servers.php' || true"
run "curl -sSI 'http://localhost:${HOST_PORT_HTTPD}${URL}servers.php' || true"
rm -f cookie.txt
@ -171,7 +171,7 @@ if [ "${DEVILBOX_VENDOR_PHPPGADMIN_AUTOLOGIN}" != "1" ]; then
else
TOKEN_URL="${TOKEN_URL//\"/}"
TOKEN_URL="${TOKEN_URL//&amp;/&}"
printf "\\r[OK] Retrieve phpPgAdmin token page:%s\\n" "${TOKEN_URL}"
print_succ "1" "1" "Retrieve phpPgAdmin token page: ${TOKEN_URL}"
fi
###
@ -180,14 +180,14 @@ if [ "${DEVILBOX_VENDOR_PHPPGADMIN_AUTOLOGIN}" != "1" ]; then
printf "[TEST] Retrieve phpPgAdmin login token"
# 1st Try
if ! TOKEN="$( run "curl -sS --fail -c cookie.txt -b cookie.txt 'http://localhost:${HOST_PORT_HTTPD}${URL}${TOKEN_URL}' | tac | tac | grep -Eo 'loginPassword_[a-zA-Z0-9]+'" "${RETRIES}" "" "0" )"; then
printf "\\r[FAIL] Retrieve phpPgAdmin login token\\n"
print_fail "1" "1" "Retrieve phpPgAdmin login token"
run "curl -sS 'http://localhost:${TOKEN_URL_URL}' || true"
run "curl -sSI 'http://localhost:${TOKEN_URL_URL}' || true"
rm -f cookie.txt
exit 1
else
TOKEN="$( echo "${TOKEN}" | head -1 )"
printf "\\r[OK] Retrieve phpPgAdmin login token: %s\\n" "${TOKEN}"
print_succ "1" "1" "Retrieve phpPgAdmin login token: ${TOKEN}"
fi
###
@ -204,7 +204,7 @@ if [ "${DEVILBOX_VENDOR_PHPPGADMIN_AUTOLOGIN}" != "1" ]; then
--data 'loginSubmit=Login' \
'http://localhost:${HOST_PORT_HTTPD}${URL}redirect.php' 2>/dev/null \
| grep -q 'Create database'" "${RETRIES}" "" "0"; then
printf "\\r[FAIL] Submit phpPgAdmin POST login\\n"
print_fail "1" "1" "Submit phpPgAdmin POST login"
run "curl -sS -c cookie.txt -b cookie.txt \
--data 'subject=server' \
--data 'server=pgsql%3A5432%3Aallow' \
@ -224,7 +224,7 @@ if [ "${DEVILBOX_VENDOR_PHPPGADMIN_AUTOLOGIN}" != "1" ]; then
rm -f cookie.txt || true
exit 1
else
printf "\\r[OK] Submit phpPgAdmin POST login\\n"
print_succ "1" "1" "Submit phpPgAdmin POST login"
fi
fi
@ -240,12 +240,12 @@ if [ "$( run "curl -sS --fail \
| tac \
| tac \
| grep -Ec 'data\">(Database|Owner|Collation|Tablespace)'" "${RETRIES}" "" "0" )" != "4" ]; then
printf "\\r[FAIL] Evaluate successful phpPgAdmin login\\n"
print_fail "1" "1" "Evaluate successful phpPgAdmin login"
run "curl -sS 'http://localhost:${HOST_PORT_HTTPD}${URL}redirect.php?subject=server&server=pgsql%3A5432%3Aallow&' || true"
run "curl -sS -I 'http://localhost:${HOST_PORT_HTTPD}${URL}redirect.php?subject=server&server=pgsql%3A5432%3Aallow&' || true"
rm -f cookie.txt || true
exit 1
else
printf "\\r[OK] Evaluate successful phpPgAdmin login\\n"
print_succ "1" "1" "Evaluate successful phpPgAdmin login"
fi
rm -f cookie.txt || true

View File

@ -6,6 +6,28 @@ Make sure to have a look at [UPDATING.md](https://github.com/cytopia/devilbox/bl
## Unreleased
## Release v2.0.0 (2022-03-28)
The goal of this release is to reduce the overall size of Docker images and bring in latest versions.
**Important:** This release introduces backwards incompatible changes due to only keeping major versions of PostreSQL and therefore removing old volumes. Additionally the PostgreSQL volume names have changed. In order to guarantee a smooth transition, backup your PostgreSQL databases in the previous version before switching and then re-importing them in this version.
#### Added
- Added CakePHP integration tests for PHP 8+
- Added `.env` variable `HTTPD_FLAVOUR` to decide between `Debian` or `Alpine` for HTTP server
#### Changed
- Changed default PostgreSQL server from `12.4` to `14-alpine` (breaking change)
- Changed default Redis server from `6.0` to `6.2-alpine`
- Changed default Memcached server from `1.6` to `1.6-alpine`
- Changed default MongoDB server from `4.4` to `5.0`
- Changed default HTTPD server flavour from `Debian` to `Alpine`
- Use tiny Alpine version of Bind container
#### Removed
- Removed CI for MongoDB `2.8` and MongoDB `3.0` due to segfault: https://github.com/docker-library/mongo/issues/251
## Release v1.11.0 (2022-03-22)
#### Fixed

View File

@ -25,9 +25,15 @@
[![Documentation Status](https://readthedocs.org/projects/devilbox/badge/?version=latest)](https://devilbox.readthedocs.io)
[![Build Status](https://github.com/cytopia/devilbox/workflows/Lint/badge.svg)](https://github.com/cytopia/devilbox/actions?workflow=Lint)
[![Build Status](https://github.com/cytopia/devilbox/workflows/Docs/badge.svg)](https://github.com/cytopia/devilbox/actions?workflow=Docs)
[![Build Status](https://github.com/cytopia/devilbox/workflows/Linux/badge.svg)](https://github.com/cytopia/devilbox/actions?workflow=Linux)
[![Build Status](https://github.com/cytopia/devilbox/workflows/Config/badge.svg)](https://github.com/cytopia/devilbox/actions?workflow=Config)
[![Build Status](https://github.com/cytopia/devilbox/workflows/Versions/badge.svg)](https://github.com/cytopia/devilbox/actions?workflow=Versions)
[![PHP](https://github.com/cytopia/devilbox/actions/workflows/test-php.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-php.yml)
[![Httpd](https://github.com/cytopia/devilbox/actions/workflows/test-httpd.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-httpd.yml)
[![MySQL](https://github.com/cytopia/devilbox/actions/workflows/test-mysql.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-mysql.yml)
[![Memcd](https://github.com/cytopia/devilbox/actions/workflows/test-memcd.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-memcd.yml)
[![Mongo](https://github.com/cytopia/devilbox/actions/workflows/test-mongo.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-mongo.yml)
[![PgSQL](https://github.com/cytopia/devilbox/actions/workflows/test-pgsql.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-pgsql.yml)
[![Redis](https://github.com/cytopia/devilbox/actions/workflows/test-redis.yml/badge.svg)](https://github.com/cytopia/devilbox/actions/workflows/test-redis.yml)
<img width="200" style="width:200px;" src="docs/_includes/figures/https/https-ssl-address-bar.png" /><br/>
<small><sub>Support for <a href="https://devilbox.readthedocs.io/en/latest/intermediate/setup-valid-https.html">valid https</a> out of the box.</sub></small>
@ -304,7 +310,7 @@ Every single attachable container comes with many different versions. In order t
<td><a target="_blank" title="MariaDB 10.5" href="https://github.com/devilbox/docker-mysql">10.5</a></td>
<td></td>
<td><a target="_blank" title="PgSQL 9.6" href="https://github.com/docker-library/postgres">9.6</a></td>
<td><a target="_blank" title="Redis latest" href="https://github.com/docker-library/redis">latest</a></td>
<td><a target="_blank" title="Redis 6.2" href="https://github.com/docker-library/redis">6.2</a></td>
<td></td>
<td><a target="_blank" title="MongoDB 4.2" href="https://github.com/docker-library/mongo">4.2</a></td>
</tr>
@ -315,8 +321,8 @@ Every single attachable container comes with many different versions. In order t
<td></td>
<td><a target="_blank" title="MariaDB 10.6" href="https://github.com/devilbox/docker-mysql">10.6</a></td>
<td></td>
<td>...</td>
<td></td>
<td><a target="_blank" title="PgSQL 10" href="https://github.com/docker-library/postgres">10</a></td>
<td><a target="_blank" title="Redis latest" href="https://github.com/docker-library/redis">latest</a></td>
<td></td>
<td><a target="_blank" title="MongoDB 4.4" href="https://github.com/docker-library/mongo">4.4</a></td>
</tr>
@ -327,10 +333,10 @@ Every single attachable container comes with many different versions. In order t
<td></td>
<td><a target="_blank" title="MariaDB 10.7" href="https://github.com/devilbox/docker-mysql">10.7</a></td>
<td></td>
<td><a target="_blank" title="PgSQL 12.3" href="https://github.com/docker-library/postgres">12.3</a></td>
<td><a target="_blank" title="PgSQL 11" href="https://github.com/docker-library/postgres">11</a></td>
<td></td>
<td></td>
<td><a target="_blank" title="MongoDB latest" href="https://github.com/docker-library/mongo">latest</a></td>
<td><a target="_blank" title="MongoDB 5.0" href="https://github.com/docker-library/mongo">5.0</a></td>
</tr>
<tr>
<td></td>
@ -339,10 +345,10 @@ Every single attachable container comes with many different versions. In order t
<td></td>
<td></td>
<td></td>
<td><a target="_blank" title="PgSQL 12.4" href="https://github.com/docker-library/postgres">12.4</a></td>
<td></td>
<td><a target="_blank" title="PgSQL 12" href="https://github.com/docker-library/postgres">12</a></td>
<td></td>
<td></td>
<td><a target="_blank" title="MongoDB latest" href="https://github.com/docker-library/mongo">latest</a></td>
</tr>
<tr>
<td></td>
@ -351,7 +357,7 @@ Every single attachable container comes with many different versions. In order t
<td></td>
<td></td>
<td></td>
<td><a target="_blank" title="PgSQL 13.0" href="https://github.com/docker-library/postgres">13.0</a></td>
<td><a target="_blank" title="PgSQL 13" href="https://github.com/docker-library/postgres">13</a></td>
<td></td>
<td></td>
<td></td>
@ -363,7 +369,7 @@ Every single attachable container comes with many different versions. In order t
<td></td>
<td></td>
<td></td>
<td><a target="_blank" title="PgSQL latest" href="https://github.com/docker-library/postgres">latest</a></td>
<td><a target="_blank" title="PgSQL 14" href="https://github.com/docker-library/postgres">14</a></td>
<td></td>
<td></td>
<td></td>
@ -375,7 +381,7 @@ Every single attachable container comes with many different versions. In order t
<td></td>
<td></td>
<td></td>
<td></td>
<td><a target="_blank" title="PgSQL latest" href="https://github.com/docker-library/postgres">latest</a></td>
<td></td>
<td></td>
<td></td>

View File

@ -34,7 +34,7 @@ services:
# Bind (DNS Server)
# ------------------------------------------------------------
bind:
image: cytopia/bind:0.28
image: cytopia/bind:alpine-0.28
hostname: bind
restart: always
ports:
@ -220,7 +220,7 @@ services:
# Web Server
# ------------------------------------------------------------
httpd:
image: devilbox/${HTTPD_SERVER}:0.43
image: devilbox/${HTTPD_SERVER}:${HTTPD_FLAVOUR:-alpine}-0.47
hostname: httpd
environment:
@ -528,52 +528,16 @@ volumes:
devilbox-pgsql-9.5-alpine:
devilbox-pgsql-9.6:
devilbox-pgsql-9.6-alpine:
devilbox-pgsql-10.0:
devilbox-pgsql-10.0-alpine:
devilbox-pgsql-10.1:
devilbox-pgsql-10.1-alpine:
devilbox-pgsql-10.2:
devilbox-pgsql-10.2-alpine:
devilbox-pgsql-10.3:
devilbox-pgsql-10.3-alpine:
devilbox-pgsql-10.4:
devilbox-pgsql-10.4-alpine:
devilbox-pgsql-10.5:
devilbox-pgsql-10.5-alpine:
devilbox-pgsql-10.6:
devilbox-pgsql-10.6-alpine:
devilbox-pgsql-11.0:
devilbox-pgsql-11.0-alpine:
devilbox-pgsql-11.1:
devilbox-pgsql-11.1-alpine:
devilbox-pgsql-11.2:
devilbox-pgsql-11.2-alpine:
devilbox-pgsql-11.3:
devilbox-pgsql-11.3-alpine:
devilbox-pgsql-11.4:
devilbox-pgsql-11.4-alpine:
devilbox-pgsql-11.5:
devilbox-pgsql-11.5-alpine:
devilbox-pgsql-11.6:
devilbox-pgsql-11.6-alpine:
devilbox-pgsql-11.7:
devilbox-pgsql-11.7-alpine:
devilbox-pgsql-11.8:
devilbox-pgsql-11.8-alpine:
devilbox-pgsql-11.9:
devilbox-pgsql-11.9-alpine:
devilbox-pgsql-12.0:
devilbox-pgsql-12.0-alpine:
devilbox-pgsql-12.1:
devilbox-pgsql-12.1-alpine:
devilbox-pgsql-12.2:
devilbox-pgsql-12.2-alpine:
devilbox-pgsql-12.3:
devilbox-pgsql-12.3-alpine:
devilbox-pgsql-12.4:
devilbox-pgsql-12.4-alpine:
devilbox-pgsql-13.0:
devilbox-pgsql-13.0-alpine:
devilbox-pgsql-10:
devilbox-pgsql-10-alpine:
devilbox-pgsql-11:
devilbox-pgsql-11-alpine:
devilbox-pgsql-12:
devilbox-pgsql-12-alpine:
devilbox-pgsql-13:
devilbox-pgsql-13-alpine:
devilbox-pgsql-14:
devilbox-pgsql-14-alpine:
devilbox-pgsql-latest:
devilbox-pgsql-alpine:
@ -588,4 +552,5 @@ volumes:
devilbox-mongo-4.0:
devilbox-mongo-4.2:
devilbox-mongo-4.4:
devilbox-mongo-5.0:
devilbox-mongo-latest:

View File

@ -557,11 +557,11 @@ PHP_SERVER
This variable choses your desired PHP-FPM version to be started.
+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+
| Name | Allowed values | Default value |
+=========================+========================================================================================================================================================================================================================================================+=================+
| ``PHP_SERVER`` | ``php-fpm-5.2`` |br| ``php-fpm-5.3`` |br| ``php-fpm-5.4`` |br| ``php-fpm-5.5`` |br| ``php-fpm-5.6`` |br| ``php-fpm-7.0`` |br| ``php-fpm-7.1`` |br| ``php-fpm-7.2`` |br| ``php-fpm-7.3`` |br| ``php-fpm-7.4`` |br| ``php-fpm-8.0`` |br| ``php-fpm-8.1`` | ``php-fpm-7.4`` |
+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+
+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+
| Name | Allowed values | Default value |
+=========================+=============================================================================================================================================================================================================================================================================+=================+
| ``PHP_SERVER`` | ``php-fpm-5.2`` |br| ``php-fpm-5.3`` |br| ``php-fpm-5.4`` |br| ``php-fpm-5.5`` |br| ``php-fpm-5.6`` |br| ``php-fpm-7.0`` |br| ``php-fpm-7.1`` |br| ``php-fpm-7.2`` |br| ``php-fpm-7.3`` |br| ``php-fpm-7.4`` |br| ``php-fpm-8.0`` |br| ``php-fpm-8.1`` |br| ``php-fpm-8.2`` | ``php-fpm-8.1`` |
+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+
.. important::
**PHP 5.2** is available to use, but it is not officially supported. The Devilbox intranet does
@ -574,7 +574,7 @@ All values are already available in the ``.env`` file and just need to be commen
.. code-block:: bash
:caption: .env
:emphasize-lines: 9
:emphasize-lines: 14
host> grep PHP_SERVER .env
@ -587,9 +587,10 @@ All values are already available in the ``.env`` file and just need to be commen
#PHP_SERVER=php-fpm-7.1
#PHP_SERVER=php-fpm-7.2
#PHP_SERVER=php-fpm-7.3
PHP_SERVER=php-fpm-7.4
#PHP_SERVER=php-fpm-7.4
#PHP_SERVER=php-fpm-8.0
#PHP_SERVER=php-fpm-8.1
PHP_SERVER=php-fpm-8.1
#PHP_SERVER=php-fpm-8.2
.. _env_httpd_server:
@ -629,14 +630,14 @@ This variable choses your desired MySQL server version to be started.
+-------------------------+------------------------------------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+================================================================================================+==================+
| ``MYSQL_SERVER`` | ``mysql-5.5`` |br| ``mysql-5.6`` |br| ``mariadb-10.2`` |br| ``percona-5.7`` |br| and many more | ``mariadb-10.5`` |
| ``MYSQL_SERVER`` | ``mysql-5.5`` |br| ``mysql-5.6`` |br| ``mariadb-10.2`` |br| ``percona-5.7`` |br| and many more | ``mariadb-10.6`` |
+-------------------------+------------------------------------------------------------------------------------------------+------------------+
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
.. code-block:: bash
:caption: .env
:emphasize-lines: 9
:emphasize-lines: 18
host> grep MYSQL_SERVER .env
@ -644,17 +645,20 @@ All values are already available in the ``.env`` file and just need to be commen
#MYSQL_SERVER=mysql-5.6
#MYSQL_SERVER=mysql-5.7
#MYSQL_SERVER=mysql-8.0
#MYSQL_SERVER=percona-5.5
#MYSQL_SERVER=percona-5.6
#MYSQL_SERVER=percona-5.7
#MYSQL_SERVER=percona-8.0
#MYSQL_SERVER=mariadb-5.5
#MYSQL_SERVER=mariadb-10.0
#MYSQL_SERVER=mariadb-10.1
#MYSQL_SERVER=mariadb-10.2
#MYSQL_SERVER=mariadb-10.3
#MYSQL_SERVER=mariadb-10.4
MYSQL_SERVER=mariadb-10.5
#MYSQL_SERVER=percona-5.5
#MYSQL_SERVER=percona-5.6
#MYSQL_SERVER=percona-5.7
#MYSQL_SERVER=percona-8.0
#MYSQL_SERVER=mariadb-10.5
MYSQL_SERVER=mariadb-10.6
#MYSQL_SERVER=mariadb-10.7
#MYSQL_SERVER=mariadb-10.8
.. _env_pgsql_server:
@ -667,14 +671,14 @@ This variable choses your desired PostgreSQL server version to be started.
+-------------------------+-------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+===================================================================+==================+
| ``PGSQL_SERVER`` | ``9.1`` |br| ``9.2`` |br| ``9.3`` |br| ``9.4`` |br| and many more | ``12.4`` |
| ``PGSQL_SERVER`` | ``9.1`` |br| ``9.2`` |br| ``9.3`` |br| ``9.4`` |br| and many more | ``14-alpine`` |
+-------------------------+-------------------------------------------------------------------+------------------+
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
.. code-block:: bash
:caption: .env
:emphasize-lines: 8
:emphasize-lines: 24
host> grep PGSQL_SERVER .env
@ -690,52 +694,16 @@ All values are already available in the ``.env`` file and just need to be commen
#PGSQL_SERVER=9.5-alpine
#PGSQL_SERVER=9.6
#PGSQL_SERVER=9.6-alpine
#PGSQL_SERVER=10.0
#PGSQL_SERVER=10.0-alpine
#PGSQL_SERVER=10.1
#PGSQL_SERVER=10.1-alpine
#PGSQL_SERVER=10.2
#PGSQL_SERVER=10.2-alpine
#PGSQL_SERVER=10.3
#PGSQL_SERVER=10.3-alpine
#PGSQL_SERVER=10.4
#PGSQL_SERVER=10.4-alpine
#PGSQL_SERVER=10.5
#PGSQL_SERVER=10.5-alpine
#PGSQL_SERVER=10.6
#PGSQL_SERVER=10.6-alpine
#PGSQL_SERVER=11.0
#PGSQL_SERVER=11.0-alpine
#PGSQL_SERVER=11.1
#PGSQL_SERVER=11.1-alpine
#PGSQL_SERVER=11.2
#PGSQL_SERVER=11.2-alpine
#PGSQL_SERVER=11.3
#PGSQL_SERVER=11.3-alpine
#PGSQL_SERVER=11.4
#PGSQL_SERVER=11.4-alpine
#PGSQL_SERVER=11.5
#PGSQL_SERVER=11.5-alpine
#PGSQL_SERVER=11.6
#PGSQL_SERVER=11.6-alpine
#PGSQL_SERVER=11.7
#PGSQL_SERVER=11.7-alpine
#PGSQL_SERVER=11.8
#PGSQL_SERVER=11.8-alpine
#PGSQL_SERVER=11.9
#PGSQL_SERVER=11.9-alpine
#PGSQL_SERVER=12.0
#PGSQL_SERVER=12.0-alpine
#PGSQL_SERVER=12.1
#PGSQL_SERVER=12.1-alpine
#PGSQL_SERVER=12.2
#PGSQL_SERVER=12.2-alpine
#PGSQL_SERVER=12.3
#PGSQL_SERVER=12.3-alpine
PGSQL_SERVER=12.4
#PGSQL_SERVER=12.4-alpine
#PGSQL_SERVER=13.0
#PGSQL_SERVER=13.0-alpine
#PGSQL_SERVER=10
#PGSQL_SERVER=10-alpine
#PGSQL_SERVER=11
#PGSQL_SERVER=11-alpine
#PGSQL_SERVER=12
#PGSQL_SERVER=12-alpine
#PGSQL_SERVER=13
#PGSQL_SERVER=13-alpine
#PGSQL_SERVER=14
PGSQL_SERVER=14-alpine
#PGSQL_SERVER=latest
#PGSQL_SERVER=alpine
@ -755,14 +723,14 @@ This variable choses your desired Redis server version to be started.
+-------------------------+-------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+===================================================================+==================+
| ``REDIS_SERVER`` | ``2.8`` |br| ``3.0`` |br| ``3.2`` |br| ``4.0`` |br| and many more | ``6.0`` |
| ``REDIS_SERVER`` | ``2.8`` |br| ``3.0`` |br| ``3.2`` |br| ``4.0`` |br| and many more | ``6.2-alpine`` |
+-------------------------+-------------------------------------------------------------------+------------------+
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
.. code-block:: bash
:caption: .env
:emphasize-lines: 6
:emphasize-lines: 15
host> grep REDIS_SERVER .env
@ -775,8 +743,10 @@ All values are already available in the ``.env`` file and just need to be commen
#REDIS_SERVER=4.0-alpine
#REDIS_SERVER=5.0
#REDIS_SERVER=5.0-alpine
REDIS_SERVER=6.0
#REDIS_SERVER=6.0
#REDIS_SERVER=6.0-alpine
#REDIS_SERVER=6.2
REDIS_SERVER=6.2-alpine
#REDIS_SERVER=latest
#REDIS_SERVER=alpine
@ -796,14 +766,14 @@ This variable choses your desired Memcached server version to be started.
+-------------------------+---------------------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+=================================================================================+==================+
| ``MEMCD_SERVER`` | ``1.4`` |br| ``1.4-alpine`` |br| ``1.5`` |br| ``1.5-alpine`` |br| and many more | ``1.6`` |
| ``MEMCD_SERVER`` | ``1.4`` |br| ``1.4-alpine`` |br| ``1.5`` |br| ``1.5-alpine`` |br| and many more | ``1.6-alpine`` |
+-------------------------+---------------------------------------------------------------------------------+------------------+
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
.. code-block:: bash
:caption: .env
:emphasize-lines: 5
:emphasize-lines: 8
host> grep MEMCD_SERVER .env
@ -811,8 +781,8 @@ All values are already available in the ``.env`` file and just need to be commen
#MEMCD_SERVER=1.4-alpine
#MEMCD_SERVER=1.5
#MEMCD_SERVER=1.5-alpine
MEMCD_SERVER=1.6
#MEMCD_SERVER=1.6-alpine
#MEMCD_SERVER=1.6
MEMCD_SERVER=1.6-alpine
#MEMCD_SERVER=latest
#MEMCD_SERVER=alpine
@ -832,14 +802,14 @@ This variable choses your desired MongoDB server version to be started.
+-------------------------+-------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+===================================================================+==================+
| ``MONGO_SERVER`` | ``2.8`` |br| ``3.0`` |br| ``3.2`` |br| ``3.4`` |br| and many more | ``4.4`` |
| ``MONGO_SERVER`` | ``2.8`` |br| ``3.0`` |br| ``3.2`` |br| ``3.4`` |br| and many more | ``5.0`` |
+-------------------------+-------------------------------------------------------------------+------------------+
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
.. code-block:: bash
:caption: .env
:emphasize-lines: 6
:emphasize-lines: 11
host> grep MONGO_SERVER .env
@ -850,7 +820,8 @@ All values are already available in the ``.env`` file and just need to be commen
#MONGO_SERVER=3.6
#MONGO_SERVER=4.0
#MONGO_SERVER=4.2
MONGO_SERVER=4.4
#MONGO_SERVER=4.4
MONGO_SERVER=5.0
#MONGO_SERVER=latest
.. note::

View File

@ -273,6 +273,12 @@ PHP_SERVER=8.1
###
### 1.2 Choose HTTPD Server Image
###
### Choose between 'debian' or 'alpine' flavour and then select the version
###
### Note: apache-2.2 has no arm64 support on 'alpine' flavour
###
HTTPD_FLAVOUR=alpine
#HTTPD_SERVER=apache-2.2
#HTTPD_SERVER=apache-2.4
HTTPD_SERVER=nginx-stable
@ -286,6 +292,10 @@ HTTPD_SERVER=nginx-stable
#MYSQL_SERVER=mysql-5.6
#MYSQL_SERVER=mysql-5.7
#MYSQL_SERVER=mysql-8.0
#MYSQL_SERVER=percona-5.5
#MYSQL_SERVER=percona-5.6
#MYSQL_SERVER=percona-5.7
#MYSQL_SERVER=percona-8.0
#MYSQL_SERVER=mariadb-5.5
#MYSQL_SERVER=mariadb-10.0
#MYSQL_SERVER=mariadb-10.1
@ -296,22 +306,26 @@ HTTPD_SERVER=nginx-stable
MYSQL_SERVER=mariadb-10.6
#MYSQL_SERVER=mariadb-10.7
#MYSQL_SERVER=mariadb-10.8
#MYSQL_SERVER=percona-5.5
#MYSQL_SERVER=percona-5.6
#MYSQL_SERVER=percona-5.7
#MYSQL_SERVER=percona-8.0
###
### 1.4 Choose PostgreSQL Server Image
###
### https://www.postgresql.org/support/versioning/
###
### IMPORTANT: Alpine based images might cause issues on Docker Toolbox or OSX
### https://github.com/docker/toolbox/issues/510
###
#
# PostgreSQL without arm64 support
#
#PGSQL_SERVER=9.0
#PGSQL_SERVER=9.1
#PGSQL_SERVER=9.2
#PGSQL_SERVER=9.2-alpine
#
# PostgreSQL with arm64 support
#
#PGSQL_SERVER=9.2
#PGSQL_SERVER=9.3
#PGSQL_SERVER=9.3-alpine
#PGSQL_SERVER=9.4
@ -320,62 +334,16 @@ MYSQL_SERVER=mariadb-10.6
#PGSQL_SERVER=9.5-alpine
#PGSQL_SERVER=9.6
#PGSQL_SERVER=9.6-alpine
#PGSQL_SERVER=10.0
#PGSQL_SERVER=10.0-alpine
#PGSQL_SERVER=10.1
#PGSQL_SERVER=10.1-alpine
#PGSQL_SERVER=10.2
#PGSQL_SERVER=10.2-alpine
#PGSQL_SERVER=10.3
#PGSQL_SERVER=10.3-alpine
#PGSQL_SERVER=10.4
#PGSQL_SERVER=10.4-alpine
#PGSQL_SERVER=10.5
#PGSQL_SERVER=10.5-alpine
#PGSQL_SERVER=10.6
#PGSQL_SERVER=10.6-alpine
#PGSQL_SERVER=10.7
#PGSQL_SERVER=10.7-alpine
#PGSQL_SERVER=10.8
#PGSQL_SERVER=10.8-alpine
#PGSQL_SERVER=10.9
#PGSQL_SERVER=10.9-alpine
#PGSQL_SERVER=10.10
#PGSQL_SERVER=10.10-alpine
#PGSQL_SERVER=10.11
#PGSQL_SERVER=10.11-alpine
#PGSQL_SERVER=11.0
#PGSQL_SERVER=11.0-alpine
#PGSQL_SERVER=11.1
#PGSQL_SERVER=11.1-alpine
#PGSQL_SERVER=11.2
#PGSQL_SERVER=11.2-alpine
#PGSQL_SERVER=11.3
#PGSQL_SERVER=11.3-alpine
#PGSQL_SERVER=11.4
#PGSQL_SERVER=11.4-alpine
#PGSQL_SERVER=11.5
#PGSQL_SERVER=11.5-alpine
#PGSQL_SERVER=11.6
#PGSQL_SERVER=11.6-alpine
#PGSQL_SERVER=11.7
#PGSQL_SERVER=11.7-alpine
#PGSQL_SERVER=11.8
#PGSQL_SERVER=11.8-alpine
#PGSQL_SERVER=11.9
#PGSQL_SERVER=11.9-alpine
#PGSQL_SERVER=12.0
#PGSQL_SERVER=12.0-alpine
#PGSQL_SERVER=12.1
#PGSQL_SERVER=12.1-alpine
#PGSQL_SERVER=12.2
#PGSQL_SERVER=12.2-alpine
#PGSQL_SERVER=12.3
#PGSQL_SERVER=12.3-alpine
PGSQL_SERVER=12.4
#PGSQL_SERVER=12.4-alpine
#PGSQL_SERVER=13.0
#PGSQL_SERVER=13.0-alpine
#PGSQL_SERVER=10
#PGSQL_SERVER=10-alpine
#PGSQL_SERVER=11
#PGSQL_SERVER=11-alpine
#PGSQL_SERVER=12
#PGSQL_SERVER=12-alpine
#PGSQL_SERVER=13
#PGSQL_SERVER=13-alpine
#PGSQL_SERVER=14
PGSQL_SERVER=14-alpine
#PGSQL_SERVER=latest
#PGSQL_SERVER=alpine
@ -386,17 +354,25 @@ PGSQL_SERVER=12.4
### IMPORTANT: Alpine based images might cause issues on Docker Toolbox or OSX
### https://github.com/docker/toolbox/issues/510
###
#
# Redis without arm64 support
#
#REDIS_SERVER=2.8
#REDIS_SERVER=3.0
#REDIS_SERVER=3.0-alpine
#
# Redis with arm64 support
#
#REDIS_SERVER=3.2
#REDIS_SERVER=3.2-alpine
#REDIS_SERVER=4.0
#REDIS_SERVER=4.0-alpine
#REDIS_SERVER=5.0
#REDIS_SERVER=5.0-alpine
REDIS_SERVER=6.0
#REDIS_SERVER=6.0
#REDIS_SERVER=6.0-alpine
#REDIS_SERVER=6.2
REDIS_SERVER=6.2-alpine
#REDIS_SERVER=latest
#REDIS_SERVER=alpine
@ -407,12 +383,18 @@ REDIS_SERVER=6.0
### IMPORTANT: Alpine based images might cause issues on Docker Toolbox or OSX
### https://github.com/docker/toolbox/issues/510
###
#
# Memcached without arm64 support
#
#MEMCD_SERVER=1.4
#MEMCD_SERVER=1.4-alpine
#
# Memcached with arm64 support
#
#MEMCD_SERVER=1.5
#MEMCD_SERVER=1.5-alpine
MEMCD_SERVER=1.6
#MEMCD_SERVER=1.6-alpine
#MEMCD_SERVER=1.6
MEMCD_SERVER=1.6-alpine
#MEMCD_SERVER=latest
#MEMCD_SERVER=alpine
@ -420,14 +402,23 @@ MEMCD_SERVER=1.6
###
### 1.7 Choose Mongo Server Image
###
### https://www.mongodb.com/evolved
###
#
# MongoDB without arm64 support
#
#MONGO_SERVER=2.8
#MONGO_SERVER=3.0
#MONGO_SERVER=3.2
#
# MongoDB with arm64 support
#
#MONGO_SERVER=3.4
#MONGO_SERVER=3.6
#MONGO_SERVER=4.0
#MONGO_SERVER=4.2
MONGO_SERVER=4.4
#MONGO_SERVER=4.4
MONGO_SERVER=5.0
#MONGO_SERVER=latest