Compare commits

..

22 Commits
0.119 ... 0.123

Author SHA1 Message Date
cytopia
282c019eb3 Merge pull request #191 from devilbox/release-0.123
Release 0.123
2020-12-19 15:56:53 +01:00
cytopia
74030c5c91 xdebug: set start_with_request to default 2020-12-19 11:07:45 +01:00
cytopia
6be20c28e6 Fixed PHP Xdebug v3 defaults 2020-12-19 10:16:46 +01:00
cytopia
28d7ab632e Merge pull request #190 from devilbox/release-0.122
Release 0.122
2020-12-12 16:44:49 +01:00
cytopia
395e4d30b4 Repository settings 2020-12-12 15:24:52 +01:00
cytopia
d93387f207 Adjust Readme to reflect GitHub Actions 2020-12-12 15:18:21 +01:00
cytopia
c5e3e7257f Update CHANGELOG 2020-12-12 15:14:40 +01:00
cytopia
0f7ea87328 Enable push to Dockerhub 2020-12-12 15:13:50 +01:00
cytopia
66b7586eae Add linting 2020-12-12 15:12:52 +01:00
cytopia
2d4c8647e1 Remove travis.yml config 2020-12-12 14:36:49 +01:00
cytopia
f0bb67cbc2 Ensure to pull latest base images during CI 2020-12-12 14:34:10 +01:00
cytopia
1b312bce33 Fix Docker image tags 2020-12-12 14:24:56 +01:00
cytopia
6aafdd7023 Fix Docker Login 2020-12-12 14:08:10 +01:00
cytopia
48380c5d98 Fix linting job 2020-12-12 14:03:04 +01:00
cytopia
5506d68f1f Fix checkout 2020-12-12 14:01:00 +01:00
cytopia
88aeca57aa Prepare GitHub Actions 2020-12-12 13:57:19 +01:00
cytopia
ec8fc4eab6 Added various extensions to PHP 8.0 and PHP 8.1 2020-12-11 17:08:14 +01:00
cytopia
f6015c766a Added various modules to PHP 8.0 2020-12-11 15:35:42 +01:00
cytopia
f0c625d951 Merge pull request #188 from devilbox/release-0.121
Release 0.121
2020-12-10 13:03:28 +01:00
cytopia
a0332b964e Compile redis with msgpack and igbinary 2020-12-09 12:40:17 +01:00
cytopia
7c1ceabf97 Merge pull request #185 from devilbox/release-0.120
Release 0.120
2020-12-04 18:09:38 +01:00
cytopia
9bc2f1ca31 Fix zsh for PHP 5.6 and 7.0 2020-12-03 09:45:18 +01:00
51 changed files with 1365 additions and 1021 deletions

2
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,2 @@
github: [cytopia]
patreon: devilbox

View File

@@ -3,7 +3,7 @@
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
# Job Name # Job Name
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
name: PHP-CI name: build
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
@@ -12,55 +12,14 @@ name: PHP-CI
on: on:
# Runs on Pull Requests # Runs on Pull Requests
pull_request: pull_request:
# Runs on Push
# Runs on master Branch and Tags
push: push:
branches:
- master
tags:
- '[0-9]+.[0-9]+*'
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
# What to run # What to run
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
jobs: jobs:
diagnostics:
name: Diagnostics
runs-on: ubuntu-latest
strategy:
fail-fast: False
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Show environment
run: |
env
# https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#github-context
- name: Show GitHub variables
run: |
echo "github.actor: ${{ github.actor }}"
echo "github.ref: ${{ github.ref }}"
echo "github.base_ref: ${{ github.base_ref }}"
echo "github.head_ref: ${{ github.head_ref }}"
echo "github.event: ${{ github.event }}"
echo "github.event_name: ${{ github.event_name }}"
echo "github.event.pull_request.base.repo.id: ${{ github.event.pull_request.base.repo.id }}"
echo "github.event.pull_request.head.repo.id: ${{ github.event.pull_request.head.repo.id }}"
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "${GITHUB_CONTEXT}"
- name: Dump Runner context
env:
RUNNER_CONTEXT: ${{ toJson(runner) }}
run: echo "${RUNNER_CONTEXT}"
build: build:
name: "[ PHP-${{ matrix.version }} ]" name: "[ PHP-${{ matrix.version }} ]"
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -83,7 +42,7 @@ jobs:
steps: steps:
# ------------------------------------------------------------ # ------------------------------------------------------------
# Checkout repository # Setup repository
# ------------------------------------------------------------ # ------------------------------------------------------------
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v2 uses: actions/checkout@v2
@@ -97,7 +56,7 @@ jobs:
# Retrieve git info (tags, etc) # Retrieve git info (tags, etc)
git fetch --all git fetch --all
# BRANCH, TAG or COMMIT # Branch, Tag or Commit
GIT_TYPE="$( \ GIT_TYPE="$( \
curl -sS https://raw.githubusercontent.com/cytopia/git-tools/master/git-info.sh \ curl -sS https://raw.githubusercontent.com/cytopia/git-tools/master/git-info.sh \
| sh \ | sh \
@@ -111,15 +70,37 @@ jobs:
| grep '^GIT_NAME' \ | grep '^GIT_NAME' \
| sed 's|.*=||g' \ | sed 's|.*=||g' \
)" )"
# Docker Tag
if [ "${GIT_TYPE}" = "BRANCH" ] && [ "${GIT_SLUG}" = "master" ]; then
DOCKER_TAG_BASE="${VERSION}-base"
DOCKER_TAG_MODS="${VERSION}-mods"
DOCKER_TAG_PROD="${VERSION}-prod"
DOCKER_TAG_WORK="${VERSION}-work"
else
DOCKER_TAG_BASE="${VERSION}-base-${GIT_SLUG}"
DOCKER_TAG_MODS="${VERSION}-mods-${GIT_SLUG}"
DOCKER_TAG_PROD="${VERSION}-prod-${GIT_SLUG}"
DOCKER_TAG_WORK="${VERSION}-work-${GIT_SLUG}"
fi
# Output # Output
echo "GIT_TYPE=${GIT_TYPE}" echo "GIT_TYPE=${GIT_TYPE}"
echo "GIT_SLUG=${GIT_SLUG}" echo "GIT_SLUG=${GIT_SLUG}"
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}"
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}"
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}"
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}"
# Export variable # Export variable
# https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#environment-files # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#environment-files
echo "GIT_TYPE=${GIT_TYPE}" >> $GITHUB_ENV echo "GIT_TYPE=${GIT_TYPE}" >> ${GITHUB_ENV}
echo "GIT_SLUG=${GIT_SLUG}" >> $GITHUB_ENV echo "GIT_SLUG=${GIT_SLUG}" >> ${GITHUB_ENV}
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}" >> ${GITHUB_ENV}
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}" >> ${GITHUB_ENV}
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}" >> ${GITHUB_ENV}
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}" >> ${GITHUB_ENV}
env:
VERSION: ${{ matrix.version }}
# ------------------------------------------------------------ # ------------------------------------------------------------
@@ -139,6 +120,7 @@ jobs:
done; done;
return 1; return 1;
} }
retry make _pull-base-image VERSION=${VERSION}
retry make build-base VERSION=${VERSION} retry make build-base VERSION=${VERSION}
env: env:
VERSION: ${{ matrix.version }} VERSION: ${{ matrix.version }}
@@ -310,9 +292,8 @@ jobs:
# ------------------------------------------------------------ # ------------------------------------------------------------
# Push build artifacts # Deploy
# ------------------------------------------------------------ # ------------------------------------------------------------
# Only run this, if the PR was created by the repo owner
- name: Publish images (only repo owner) - name: Publish images (only repo owner)
run: | run: |
retry() { retry() {
@@ -328,32 +309,29 @@ jobs:
return 1; return 1;
} }
# Info output # Output
echo "Git Type: ${GIT_TYPE}" echo "GIT_TYPE=${GIT_TYPE}"
echo "Git Slug: ${GIT_SLUG}" echo "GIT_SLUG=${GIT_SLUG}"
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}"
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}"
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}"
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}"
# Tag image
retry make tag OLD_TAG="${VERSION}-base" NEW_TAG="${DOCKER_TAG_BASE}"
retry make tag OLD_TAG="${VERSION}-mods" NEW_TAG="${DOCKER_TAG_MODS}"
retry make tag OLD_TAG="${VERSION}-prod" NEW_TAG="${DOCKER_TAG_PROD}"
retry make tag OLD_TAG="${VERSION}-work" NEW_TAG="${DOCKER_TAG_WORK}"
docker images
# Login # Login
echo "retry make login USER= PASS=" retry make login USERNAME=${{ secrets.DOCKERHUB_USERNAME }} PASSWORD=${{ secrets.DOCKERHUB_PASSWORD }}
# Push # Push
if [ "${GIT_TYPE}" = "TAG" ]; then retry make push TAG=${DOCKER_TAG_BASE}
echo "retry make push-base VERSION=${VERSION}-${GIT_SLUG}" retry make push TAG=${DOCKER_TAG_MODS}
echo "retry make push-mods VERSION=${VERSION}-${GIT_SLUG}" retry make push TAG=${DOCKER_TAG_PROD}
echo "retry make push-prod VERSION=${VERSION}-${GIT_SLUG}" retry make push TAG=${DOCKER_TAG_WORK}
echo "retry make push-work VERSION=${VERSION}-${GIT_SLUG}"
else
if [ "${GIT_SLUG}" = "master" ]; then
echo "retry make push-base VERSION=${VERSION}"
echo "retry make push-mods VERSION=${VERSION}"
echo "retry make push-prod VERSION=${VERSION}"
echo "retry make push-work VERSION=${VERSION}"
else
echo "retry make push-base VERSION=${VERSION}-${GIT_SLUG}"
echo "retry make push-mods VERSION=${VERSION}-${GIT_SLUG}"
echo "retry make push-prod VERSION=${VERSION}-${GIT_SLUG}"
echo "retry make push-work VERSION=${VERSION}-${GIT_SLUG}"
fi
fi
env: env:
VERSION: ${{ matrix.version }} VERSION: ${{ matrix.version }}
RETRIES: 20 RETRIES: 20
@@ -361,9 +339,9 @@ jobs:
# https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#functions # https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#functions
if: github.event.pull_request.base.repo.id == github.event.pull_request.head.repo.id if: github.event.pull_request.base.repo.id == github.event.pull_request.head.repo.id
&& ( && (
(github.event_name == 'schedule' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/'))) (github.event_name == 'schedule' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|| ||
(github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/'))) (github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|| ||
(github.event_name == 'pull_request' && (startsWith(github.head_ref, 'release-'))) (github.event_name == 'push' && startsWith(github.ref, 'refs/heads/release-'))
) )

View File

@@ -1,27 +1,55 @@
--- ---
### # -------------------------------------------------------------------------------------------------
### Lints all generic and json files in the whole git repository # Job Name
### # -------------------------------------------------------------------------------------------------
name: lint
name: Linting
# -------------------------------------------------------------------------------------------------
# When to run
# -------------------------------------------------------------------------------------------------
on: on:
# Runs on Pull Requests
pull_request: pull_request:
# -------------------------------------------------------------------------------------------------
# What to run
# -------------------------------------------------------------------------------------------------
jobs: jobs:
lint: lint:
name: "[ ${{ matrix.job }} ]" name: "Lint"
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
fail-fast: False
matrix:
job: [gen-dockerfiles]
steps: steps:
# ------------------------------------------------------------
# Setup repository
# ------------------------------------------------------------
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v2 uses: actions/checkout@v2
with:
fetch-depth: 0
# ------------------------------------------------------------
# Lint repository
# ------------------------------------------------------------
- name: Lint Files
run: |
make lint-files
- name: Lint Yaml
run: |
make lint-yaml
- name: Lint workflow
run: |
make lint-workflow
- name: Lint Changelog
run: |
make lint-changelog
- name: Diff generated Docker files - name: Diff generated Docker files
run: | run: |
make "${JOB}" make gen-dockerfiles
git diff --quiet || { echo "Build Changes"; git diff; git status; false; } git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
env:
JOB: ${{ matrix.job }}

View File

@@ -3,7 +3,7 @@
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
# Job Name # Job Name
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
name: PHP-Nightly name: nightly
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
@@ -19,50 +19,8 @@ on:
# What to run # What to run
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
jobs: jobs:
diagnostics: nightly:
name: Diagnostics name: "[ PHP-${{ matrix.version }} ] (ref: ${{ matrix.refs }})"
runs-on: ubuntu-latest
strategy:
fail-fast: False
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Show environment
run: |
env
# https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#github-context
- name: Show GitHub variables
run: |
echo "github.actor: ${{ github.actor }}"
echo "github.ref: ${{ github.ref }}"
echo "github.base_ref: ${{ github.base_ref }}"
echo "github.head_ref: ${{ github.head_ref }}"
echo "github.event: ${{ github.event }}"
echo "github.event_name: ${{ github.event_name }}"
echo "github.event.pull_request.base.repo.id: ${{ github.event.pull_request.base.repo.id }}"
echo "github.event.pull_request.head.repo.id: ${{ github.event.pull_request.head.repo.id }}"
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "${GITHUB_CONTEXT}"
- name: Dump Runner context
env:
RUNNER_CONTEXT: ${{ toJson(runner) }}
run: echo "${RUNNER_CONTEXT}"
- name: Show git info
env:
RUNNER_CONTEXT: ${{ toJson(runner) }}
run: |
git log | head -20
build:
name: "[ PHP-${{ matrix.version }} (ref: ${{ matrix.refs }}) ]"
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: False fail-fast: False
@@ -82,11 +40,11 @@ jobs:
- '8.1' - '8.1'
refs: refs:
- 'master' - 'master'
- '0.118' - '0.123'
steps: steps:
# ------------------------------------------------------------ # ------------------------------------------------------------
# Checkout repository # Setup repository
# ------------------------------------------------------------ # ------------------------------------------------------------
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v2 uses: actions/checkout@v2
@@ -101,7 +59,7 @@ jobs:
# Retrieve git info (tags, etc) # Retrieve git info (tags, etc)
git fetch --all git fetch --all
# BRANCH, TAG or COMMIT # Branch, Tag or Commit
GIT_TYPE="$( \ GIT_TYPE="$( \
curl -sS https://raw.githubusercontent.com/cytopia/git-tools/master/git-info.sh \ curl -sS https://raw.githubusercontent.com/cytopia/git-tools/master/git-info.sh \
| sh \ | sh \
@@ -115,15 +73,37 @@ jobs:
| grep '^GIT_NAME' \ | grep '^GIT_NAME' \
| sed 's|.*=||g' \ | sed 's|.*=||g' \
)" )"
# Docker Tag
if [ "${GIT_TYPE}" = "BRANCH" ] && [ "${GIT_SLUG}" = "master" ]; then
DOCKER_TAG_BASE="${VERSION}-base"
DOCKER_TAG_MODS="${VERSION}-mods"
DOCKER_TAG_PROD="${VERSION}-prod"
DOCKER_TAG_WORK="${VERSION}-work"
else
DOCKER_TAG_BASE="${VERSION}-base-${GIT_SLUG}"
DOCKER_TAG_MODS="${VERSION}-mods-${GIT_SLUG}"
DOCKER_TAG_PROD="${VERSION}-prod-${GIT_SLUG}"
DOCKER_TAG_WORK="${VERSION}-work-${GIT_SLUG}"
fi
# Output # Output
echo "GIT_TYPE=${GIT_TYPE}" echo "GIT_TYPE=${GIT_TYPE}"
echo "GIT_SLUG=${GIT_SLUG}" echo "GIT_SLUG=${GIT_SLUG}"
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}"
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}"
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}"
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}"
# Export variable # Export variable
# https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#environment-files # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#environment-files
echo "GIT_TYPE=${GIT_TYPE}" >> $GITHUB_ENV echo "GIT_TYPE=${GIT_TYPE}" >> ${GITHUB_ENV}
echo "GIT_SLUG=${GIT_SLUG}" >> $GITHUB_ENV echo "GIT_SLUG=${GIT_SLUG}" >> ${GITHUB_ENV}
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}" >> ${GITHUB_ENV}
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}" >> ${GITHUB_ENV}
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}" >> ${GITHUB_ENV}
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}" >> ${GITHUB_ENV}
env:
VERSION: ${{ matrix.version }}
# ------------------------------------------------------------ # ------------------------------------------------------------
@@ -143,6 +123,7 @@ jobs:
done; done;
return 1; return 1;
} }
retry make _pull-base-image VERSION=${VERSION}
retry make build-base VERSION=${VERSION} retry make build-base VERSION=${VERSION}
env: env:
VERSION: ${{ matrix.version }} VERSION: ${{ matrix.version }}
@@ -314,9 +295,8 @@ jobs:
# ------------------------------------------------------------ # ------------------------------------------------------------
# Push build artifacts # Deploy
# ------------------------------------------------------------ # ------------------------------------------------------------
# Only run this, if the PR was created by the repo owner
- name: Publish images (only repo owner) - name: Publish images (only repo owner)
run: | run: |
retry() { retry() {
@@ -332,32 +312,29 @@ jobs:
return 1; return 1;
} }
# Info output # Output
echo "Git Type: ${GIT_TYPE}" echo "GIT_TYPE=${GIT_TYPE}"
echo "Git Slug: ${GIT_SLUG}" echo "GIT_SLUG=${GIT_SLUG}"
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}"
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}"
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}"
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}"
# Tag image
retry make tag OLD_TAG="${VERSION}-base" NEW_TAG="${DOCKER_TAG_BASE}"
retry make tag OLD_TAG="${VERSION}-mods" NEW_TAG="${DOCKER_TAG_MODS}"
retry make tag OLD_TAG="${VERSION}-prod" NEW_TAG="${DOCKER_TAG_PROD}"
retry make tag OLD_TAG="${VERSION}-work" NEW_TAG="${DOCKER_TAG_WORK}"
docker images
# Login # Login
echo "retry make login USER= PASS=" retry make login USERNAME=${{ secrets.DOCKERHUB_USERNAME }} PASSWORD=${{ secrets.DOCKERHUB_PASSWORD }}
# Push # Push
if [ "${GIT_TYPE}" = "TAG" ]; then retry make push TAG=${DOCKER_TAG_BASE}
echo "retry make push-base VERSION=${VERSION}-${GIT_SLUG}" retry make push TAG=${DOCKER_TAG_MODS}
echo "retry make push-mods VERSION=${VERSION}-${GIT_SLUG}" retry make push TAG=${DOCKER_TAG_PROD}
echo "retry make push-prod VERSION=${VERSION}-${GIT_SLUG}" retry make push TAG=${DOCKER_TAG_WORK}
echo "retry make push-work VERSION=${VERSION}-${GIT_SLUG}"
else
if [ "${GIT_SLUG}" = "master" ]; then
echo "retry make push-base VERSION=${VERSION}"
echo "retry make push-mods VERSION=${VERSION}"
echo "retry make push-prod VERSION=${VERSION}"
echo "retry make push-work VERSION=${VERSION}"
else
echo "retry make push-base VERSION=${VERSION}-${GIT_SLUG}"
echo "retry make push-mods VERSION=${VERSION}-${GIT_SLUG}"
echo "retry make push-prod VERSION=${VERSION}-${GIT_SLUG}"
echo "retry make push-work VERSION=${VERSION}-${GIT_SLUG}"
fi
fi
env: env:
VERSION: ${{ matrix.version }} VERSION: ${{ matrix.version }}
RETRIES: 20 RETRIES: 20
@@ -365,9 +342,9 @@ jobs:
# https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#functions # https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#functions
if: github.event.pull_request.base.repo.id == github.event.pull_request.head.repo.id if: github.event.pull_request.base.repo.id == github.event.pull_request.head.repo.id
&& ( && (
(github.event_name == 'schedule' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/'))) (github.event_name == 'schedule' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|| ||
(github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/'))) (github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|| ||
(github.event_name == 'pull_request' && (startsWith(github.head_ref, 'release-'))) (github.event_name == 'push' && startsWith(github.ref, 'refs/heads/release-'))
) )

View File

@@ -1,136 +0,0 @@
---
###
### Travis settings
###
sudo: required
language: minimal
services:
- docker
###
### Build Matrix
###
env:
global:
- IMAGE: devilbox/php-fpm
matrix:
- PHP=5.2
- PHP=5.3
- PHP=5.4
- PHP=5.5
- PHP=5.6
- PHP=7.0
- PHP=7.1
- PHP=7.2
- PHP=7.3
- PHP=7.4
- PHP=8.0
- PHP=8.1
###
### Install requirements
###
install:
- docker version
# Disable services enabled by default
# http://docs.travis-ci.com/user/database-setup/#MySQL
- sudo /etc/init.d/httpd stop || true
- sudo /etc/init.d/memcached stop || true
- sudo /etc/init.d/mongodb stop || true
- sudo /etc/init.d/mysql stop || true
- sudo /etc/init.d/nginx stop || true
- sudo /etc/init.d/postgresql stop || true
- sudo /etc/init.d/redis stop || true
- sudo service httpd stop || true
- sudo service memcached stop || true
- sudo service mongodb stop || true
- sudo service mysql stop || true
- sudo service nginx stop || true
- sudo service postgresql stop || true
- sudo service redis stop || true
- netstat -tulpn
- retry() {
for ((n=0; n<10; n++)); do
echo "[${n}] ${*}";
if eval "${*}"; then
return 0;
fi;
done;
return 1;
}
###
### Check generation changes, build and test
###
before_script:
# Build (multiple tries due to network outages)
- retry make build-base VERSION=${PHP}
#- retry make test-base VERSION=${PHP}
- retry make build-mods VERSION=${PHP}
#- retry make test-mods VERSION=${PHP}
- retry make build-prod VERSION=${PHP}
#- retry make test-prod VERSION=${PHP}
- retry make build-work VERSION=${PHP}
- retry make test-work VERSION=${PHP}
###
### Push to Dockerhub
###
script:
- if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
retry make login USERNAME="${DOCKER_USERNAME}" PASSWORD="${DOCKER_PASSWORD}";
if [ "${TRAVIS_BRANCH}" == "master" ]; then
echo "Pushing latest";
retry make push TAG="${PHP}-base" &&
retry make push TAG="${PHP}-mods" &&
retry make push TAG="${PHP}-prod" &&
retry make push TAG="${PHP}-work";
elif [[ ${TRAVIS_BRANCH} =~ ^(release-[.0-9]+)$ ]]; then
echo "Pushing branch ${TRAVIS_BRANCH}";
retry make tag OLD_TAG="${PHP}-base" NEW_TAG="${PHP}-base-${TRAVIS_BRANCH}" &&
retry make tag OLD_TAG="${PHP}-mods" NEW_TAG="${PHP}-mods-${TRAVIS_BRANCH}" &&
retry make tag OLD_TAG="${PHP}-prod" NEW_TAG="${PHP}-prod-${TRAVIS_BRANCH}" &&
retry make tag OLD_TAG="${PHP}-work" NEW_TAG="${PHP}-work-${TRAVIS_BRANCH}" &&
retry make push TAG="${PHP}-base-${TRAVIS_BRANCH}" &&
retry make push TAG="${PHP}-mods-${TRAVIS_BRANCH}" &&
retry make push TAG="${PHP}-prod-${TRAVIS_BRANCH}" &&
retry make push TAG="${PHP}-work-${TRAVIS_BRANCH}";
elif [ -n "${TRAVIS_TAG}" ]; then
echo "Pushing tag ${TRAVIS_TAG}";
retry make tag OLD_TAG="${PHP}-base" NEW_TAG="${PHP}-base-${TRAVIS_TAG}" &&
retry make tag OLD_TAG="${PHP}-mods" NEW_TAG="${PHP}-mods-${TRAVIS_TAG}" &&
retry make tag OLD_TAG="${PHP}-prod" NEW_TAG="${PHP}-prod-${TRAVIS_TAG}" &&
retry make tag OLD_TAG="${PHP}-work" NEW_TAG="${PHP}-work-${TRAVIS_TAG}" &&
retry make push TAG="${PHP}-base-${TRAVIS_TAG}" &&
retry make push TAG="${PHP}-mods-${TRAVIS_TAG}" &&
retry make push TAG="${PHP}-prod-${TRAVIS_TAG}" &&
retry make push TAG="${PHP}-work-${TRAVIS_TAG}";
elif [ "${TRAVIS_EVENT_TYPE}" = "cron" ]; then
if MY_TAG="$( git describe --exact-match "$(git rev-parse HEAD)" 2>/dev/null )"; then
echo "Pushing cron tag ${MY_TAG}";
retry make tag OLD_TAG="${PHP}-base" NEW_TAG="${PHP}-base-${MY_TAG}" &&
retry make tag OLD_TAG="${PHP}-mods" NEW_TAG="${PHP}-mods-${MY_TAG}" &&
retry make tag OLD_TAG="${PHP}-prod" NEW_TAG="${PHP}-prod-${MY_TAG}" &&
retry make tag OLD_TAG="${PHP}-work" NEW_TAG="${PHP}-work-${MY_TAG}" &&
retry make push TAG="${PHP}-base-${MY_TAG}" &&
retry make push TAG="${PHP}-mods-${MY_TAG}" &&
retry make push TAG="${PHP}-prod-${MY_TAG}" &&
retry make push TAG="${PHP}-work-${MY_TAG}";
fi
else
echo "Skipping push to dockerhub on normal branches";
fi
else
echo "Skipping push to dockerhub on PR";
fi

View File

@@ -4,6 +4,46 @@
## Unreleased ## Unreleased
## Release 0.123
#### Fixed
- Fixex `redis` module compilation for PHP 8.1
- Fixed PHP Xdebug v3 defaults to:
```ini
xdebug.mode = Off
xdebug.start_with_request = default
xdebug.client_port = 9000
```
#### Changed
- Removed `pdo_dblib` from PHP 8.1 due to errors
## Release 0.122
#### Added
- Added `apcu`, `blackfire`, `igbinary`, `imap`, `mcrypt`, `memcache`, `msgpack`, `oauth`, `psr`, `solr`, `xlswriter`, `yaml` to PHP 8.0
- Added `apcu`, `igbinary`, `imap`, `mcrypt`, `memcache`, `msgpack`, `oauth`, `psr`, `solr`, `xlswriter`, `yaml` to PHP 8.1
#### Changed
- Migrate from Travis CI to GitHub Actions
## Release 0.121
#### Fixed
- Fixed `msgpack` install for PHP 7.0 - 7.4
#### Changed
- Compile `redis` extension with `msgpack` and `igbinary`
## Release 0.120
#### Fixed
- Fixed `zsh` install for PHP 5.6 and 7.0
## Release 0.119 ## Release 0.119
#### Fixed #### Fixed

View File

@@ -10,40 +10,40 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = Off display_errors = Off
display_startup_errors = Off display_startup_errors = Off
track_errors = On track_errors = On
log_errors = On log_errors = On
html_errors = Off html_errors = Off
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.default_enable = Off
xdebug.profiler_enable = Off xdebug.profiler_enable = Off
xdebug.remote_enable = Off xdebug.remote_enable = Off
xdebug.remote_autostart = Off xdebug.remote_autostart = Off

View File

@@ -10,40 +10,40 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = Off display_errors = Off
display_startup_errors = Off display_startup_errors = Off
track_errors = On track_errors = On
log_errors = On log_errors = On
html_errors = Off html_errors = Off
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.default_enable = Off
xdebug.profiler_enable = Off xdebug.profiler_enable = Off
xdebug.remote_enable = Off xdebug.remote_enable = Off
xdebug.remote_autostart = Off xdebug.remote_autostart = Off

View File

@@ -10,41 +10,41 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = Off display_errors = Off
display_startup_errors = Off display_startup_errors = Off
track_errors = On track_errors = On
log_errors = On log_errors = On
html_errors = Off html_errors = Off
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.default_enable = Off
xdebug.profiler_enable = Off xdebug.profiler_enable = Off
xdebug.remote_enable = Off xdebug.remote_enable = Off
xdebug.remote_autostart = Off xdebug.remote_autostart = Off

View File

@@ -10,41 +10,41 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = Off display_errors = Off
display_startup_errors = Off display_startup_errors = Off
track_errors = On track_errors = On
log_errors = On log_errors = On
html_errors = Off html_errors = Off
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.default_enable = Off
xdebug.profiler_enable = Off xdebug.profiler_enable = Off
xdebug.remote_enable = Off xdebug.remote_enable = Off
xdebug.remote_autostart = Off xdebug.remote_autostart = Off

View File

@@ -10,41 +10,41 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = Off display_errors = Off
display_startup_errors = Off display_startup_errors = Off
track_errors = On track_errors = On
log_errors = On log_errors = On
html_errors = Off html_errors = Off
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.default_enable = Off
xdebug.profiler_enable = Off xdebug.profiler_enable = Off
xdebug.remote_enable = Off xdebug.remote_enable = Off
xdebug.remote_autostart = Off xdebug.remote_autostart = Off

View File

@@ -10,41 +10,41 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = Off display_errors = Off
display_startup_errors = Off display_startup_errors = Off
track_errors = On track_errors = On
log_errors = On log_errors = On
html_errors = Off html_errors = Off
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.default_enable = Off
xdebug.profiler_enable = Off xdebug.profiler_enable = Off
xdebug.remote_enable = Off xdebug.remote_enable = Off
xdebug.remote_autostart = Off xdebug.remote_autostart = Off

View File

@@ -10,41 +10,41 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = Off display_errors = Off
display_startup_errors = Off display_startup_errors = Off
track_errors = On track_errors = On
log_errors = On log_errors = On
html_errors = Off html_errors = Off
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.default_enable = Off
xdebug.profiler_enable = Off xdebug.profiler_enable = Off
xdebug.remote_enable = Off xdebug.remote_enable = Off
xdebug.remote_autostart = Off xdebug.remote_autostart = Off

View File

@@ -10,40 +10,39 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = Off display_errors = Off
display_startup_errors = Off display_startup_errors = Off
log_errors = On log_errors = On
html_errors = Off html_errors = Off
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.mode = Off
xdebug.profiler_enable = Off xdebug.start_with_request = default
xdebug.remote_enable = Off xdebug.client_port = 9000
xdebug.remote_autostart = Off

View File

@@ -10,40 +10,39 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = Off display_errors = Off
display_startup_errors = Off display_startup_errors = Off
log_errors = On log_errors = On
html_errors = Off html_errors = Off
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.mode = Off
xdebug.profiler_enable = Off xdebug.start_with_request = default
xdebug.remote_enable = Off xdebug.client_port = 9000
xdebug.remote_autostart = Off

View File

@@ -10,40 +10,39 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = Off display_errors = Off
display_startup_errors = Off display_startup_errors = Off
log_errors = On log_errors = On
html_errors = Off html_errors = Off
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.mode = Off
xdebug.profiler_enable = Off xdebug.start_with_request = default
xdebug.remote_enable = Off xdebug.client_port = 9000
xdebug.remote_autostart = Off

View File

@@ -10,40 +10,39 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = Off display_errors = Off
display_startup_errors = Off display_startup_errors = Off
log_errors = On log_errors = On
html_errors = Off html_errors = Off
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.mode = Off
xdebug.profiler_enable = Off xdebug.start_with_request = default
xdebug.remote_enable = Off xdebug.client_port = 9000
xdebug.remote_autostart = Off

View File

@@ -10,40 +10,39 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = Off display_errors = Off
display_startup_errors = Off display_startup_errors = Off
log_errors = On log_errors = On
html_errors = Off html_errors = Off
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.mode = Off
xdebug.profiler_enable = Off xdebug.start_with_request = default
xdebug.remote_enable = Off xdebug.client_port = 9000
xdebug.remote_autostart = Off

View File

@@ -242,8 +242,9 @@ RUN set -eux \
# -------------------- Installing PHP Extension: mcrypt -------------------- # -------------------- Installing PHP Extension: mcrypt --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Version specific
# Type: Built-in extension # Type: Built-in extension
# Installation
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& true && true

View File

@@ -254,8 +254,9 @@ RUN set -eux \
# -------------------- Installing PHP Extension: mcrypt -------------------- # -------------------- Installing PHP Extension: mcrypt --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Version specific
# Type: Built-in extension # Type: Built-in extension
# Installation
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& true && true

View File

@@ -254,8 +254,9 @@ RUN set -eux \
# -------------------- Installing PHP Extension: mcrypt -------------------- # -------------------- Installing PHP Extension: mcrypt --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Version specific
# Type: Built-in extension # Type: Built-in extension
# Installation
&& docker-php-ext-install mcrypt \ && docker-php-ext-install mcrypt \
&& true && true

View File

@@ -262,8 +262,9 @@ RUN set -eux \
# -------------------- Installing PHP Extension: mcrypt -------------------- # -------------------- Installing PHP Extension: mcrypt --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Version specific
# Type: Built-in extension # Type: Built-in extension
# Installation
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& true && true

View File

@@ -278,8 +278,9 @@ RUN set -eux \
# -------------------- Installing PHP Extension: mcrypt -------------------- # -------------------- Installing PHP Extension: mcrypt --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Version specific
# Type: Built-in extension # Type: Built-in extension
# Installation
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& true && true

View File

@@ -295,8 +295,9 @@ RUN set -eux \
# -------------------- Installing PHP Extension: mcrypt -------------------- # -------------------- Installing PHP Extension: mcrypt --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Version specific
# Type: Built-in extension # Type: Built-in extension
# Installation
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& true && true
@@ -314,10 +315,10 @@ RUN set -eux \
# -------------------- Installing PHP Extension: memcache -------------------- # -------------------- Installing PHP Extension: memcache --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Version specific
# Type: PECL extension # Type: PECL extension
# Default: Pecl command # Default: Pecl command
&& pecl install memcache \ && pecl install memcache-4.0.5.2 \
# Enabling # Enabling
&& docker-php-ext-enable memcache \ && docker-php-ext-enable memcache \
&& true && true
@@ -537,9 +538,24 @@ RUN set -eux \
# -------------------- Installing PHP Extension: redis -------------------- # -------------------- Installing PHP Extension: redis --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
# Type: PECL extension # Type: GIT extension
# Default: Pecl command && git clone https://github.com/phpredis/phpredis /tmp/redis \
&& pecl install redis \ && cd /tmp/redis \
# Custom: Branch
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
# Custom: Install command
&& REDIS_ARGS=""; \
if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
fi; \
if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
fi; \
phpize \
&& ./configure --enable-redis ${REDIS_ARGS} \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
\
# Enabling # Enabling
&& docker-php-ext-enable redis \ && docker-php-ext-enable redis \
&& true && true

View File

@@ -295,8 +295,9 @@ RUN set -eux \
# -------------------- Installing PHP Extension: mcrypt -------------------- # -------------------- Installing PHP Extension: mcrypt --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Version specific
# Type: Built-in extension # Type: Built-in extension
# Installation
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& true && true
@@ -314,10 +315,10 @@ RUN set -eux \
# -------------------- Installing PHP Extension: memcache -------------------- # -------------------- Installing PHP Extension: memcache --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Version specific
# Type: PECL extension # Type: PECL extension
# Default: Pecl command # Default: Pecl command
&& pecl install memcache \ && pecl install memcache-4.0.5.2 \
# Enabling # Enabling
&& docker-php-ext-enable memcache \ && docker-php-ext-enable memcache \
&& true && true
@@ -537,9 +538,24 @@ RUN set -eux \
# -------------------- Installing PHP Extension: redis -------------------- # -------------------- Installing PHP Extension: redis --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
# Type: PECL extension # Type: GIT extension
# Default: Pecl command && git clone https://github.com/phpredis/phpredis /tmp/redis \
&& pecl install redis \ && cd /tmp/redis \
# Custom: Branch
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
# Custom: Install command
&& REDIS_ARGS=""; \
if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
fi; \
if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
fi; \
phpize \
&& ./configure --enable-redis ${REDIS_ARGS} \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
\
# Enabling # Enabling
&& docker-php-ext-enable redis \ && docker-php-ext-enable redis \
&& true && true

View File

@@ -317,10 +317,10 @@ RUN set -eux \
# -------------------- Installing PHP Extension: memcache -------------------- # -------------------- Installing PHP Extension: memcache --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Version specific
# Type: PECL extension # Type: PECL extension
# Default: Pecl command # Default: Pecl command
&& pecl install memcache \ && pecl install memcache-4.0.5.2 \
# Enabling # Enabling
&& docker-php-ext-enable memcache \ && docker-php-ext-enable memcache \
&& true && true
@@ -541,9 +541,24 @@ RUN set -eux \
# -------------------- Installing PHP Extension: redis -------------------- # -------------------- Installing PHP Extension: redis --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
# Type: PECL extension # Type: GIT extension
# Default: Pecl command && git clone https://github.com/phpredis/phpredis /tmp/redis \
&& pecl install redis \ && cd /tmp/redis \
# Custom: Branch
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
# Custom: Install command
&& REDIS_ARGS=""; \
if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
fi; \
if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
fi; \
phpize \
&& ./configure --enable-redis ${REDIS_ARGS} \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
\
# Enabling # Enabling
&& docker-php-ext-enable redis \ && docker-php-ext-enable redis \
&& true && true

View File

@@ -317,10 +317,10 @@ RUN set -eux \
# -------------------- Installing PHP Extension: memcache -------------------- # -------------------- Installing PHP Extension: memcache --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Version specific
# Type: PECL extension # Type: PECL extension
# Default: Pecl command # Default: Pecl command
&& pecl install memcache \ && pecl install memcache-4.0.5.2 \
# Enabling # Enabling
&& docker-php-ext-enable memcache \ && docker-php-ext-enable memcache \
&& true && true
@@ -541,9 +541,24 @@ RUN set -eux \
# -------------------- Installing PHP Extension: redis -------------------- # -------------------- Installing PHP Extension: redis --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
# Type: PECL extension # Type: GIT extension
# Default: Pecl command && git clone https://github.com/phpredis/phpredis /tmp/redis \
&& pecl install redis \ && cd /tmp/redis \
# Custom: Branch
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
# Custom: Install command
&& REDIS_ARGS=""; \
if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
fi; \
if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
fi; \
phpize \
&& ./configure --enable-redis ${REDIS_ARGS} \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
\
# Enabling # Enabling
&& docker-php-ext-enable redis \ && docker-php-ext-enable redis \
&& true && true

View File

@@ -304,7 +304,7 @@ RUN set -eux \
# -------------------- Installing PHP Extension: mcrypt -------------------- # -------------------- Installing PHP Extension: mcrypt --------------------
RUN set -eux \ RUN set -eux \
# Installation: Version specific # Installation: Generic
# Type: PECL extension # Type: PECL extension
# Default: Pecl command # Default: Pecl command
&& pecl install mcrypt \ && pecl install mcrypt \
@@ -326,10 +326,10 @@ RUN set -eux \
# -------------------- Installing PHP Extension: memcache -------------------- # -------------------- Installing PHP Extension: memcache --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Version specific
# Type: PECL extension # Type: PECL extension
# Default: Pecl command # Default: Pecl command
&& pecl install memcache \ && pecl install memcache-4.0.5.2 \
# Enabling # Enabling
&& docker-php-ext-enable memcache \ && docker-php-ext-enable memcache \
&& true && true
@@ -535,9 +535,24 @@ RUN set -eux \
# -------------------- Installing PHP Extension: redis -------------------- # -------------------- Installing PHP Extension: redis --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
# Type: PECL extension # Type: GIT extension
# Default: Pecl command && git clone https://github.com/phpredis/phpredis /tmp/redis \
&& pecl install redis \ && cd /tmp/redis \
# Custom: Branch
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
# Custom: Install command
&& REDIS_ARGS=""; \
if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
fi; \
if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
fi; \
phpize \
&& ./configure --enable-redis ${REDIS_ARGS} \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
\
# Enabling # Enabling
&& docker-php-ext-enable redis \ && docker-php-ext-enable redis \
&& true && true

View File

@@ -14,6 +14,8 @@ RUN set -eux \
freetds-dev \ freetds-dev \
libaio-dev \ libaio-dev \
libbz2-dev \ libbz2-dev \
libc-client-dev \
libcurl4-openssl-dev \
libenchant-dev \ libenchant-dev \
libevent-dev \ libevent-dev \
libfbclient2 \ libfbclient2 \
@@ -22,8 +24,11 @@ RUN set -eux \
libib-util \ libib-util \
libicu-dev \ libicu-dev \
libjpeg-dev \ libjpeg-dev \
libkrb5-dev \
libldap2-dev \ libldap2-dev \
libmcrypt-dev \
libmemcached-dev \ libmemcached-dev \
libpcre3-dev \
libpng-dev \ libpng-dev \
libpq-dev \ libpq-dev \
libpspell-dev \ libpspell-dev \
@@ -37,6 +42,7 @@ RUN set -eux \
libxml2-dev \ libxml2-dev \
libxpm-dev \ libxpm-dev \
libxslt-dev \ libxslt-dev \
libyaml-dev \
libzip-dev \ libzip-dev \
snmp \ snmp \
zlib1g-dev \ zlib1g-dev \
@@ -58,6 +64,17 @@ RUN set -eux \
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
fi fi
# -------------------- Installing PHP Extension: apcu --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install apcu \
# Enabling
&& docker-php-ext-enable apcu \
&& true
# -------------------- Installing PHP Extension: bcmath -------------------- # -------------------- Installing PHP Extension: bcmath --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
@@ -66,6 +83,20 @@ RUN set -eux \
&& true && true
# -------------------- Installing PHP Extension: blackfire --------------------
RUN set -eux \
# Installation: Generic
# Type: Custom extension
&& version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
&& mkdir -p /tmp/blackfire \
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp/blackfire \
&& mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \
&& rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz \
\
&& true
# -------------------- Installing PHP Extension: bz2 -------------------- # -------------------- Installing PHP Extension: bz2 --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
@@ -137,6 +168,29 @@ RUN set -eux \
&& true && true
# -------------------- Installing PHP Extension: igbinary --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install igbinary \
# Enabling
&& docker-php-ext-enable igbinary \
&& true
# -------------------- Installing PHP Extension: imap --------------------
RUN set -eux \
# Generic pre-command
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
# Installation: Generic
# Type: Built-in extension
# Custom: configure command
&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& true
# -------------------- Installing PHP Extension: intl -------------------- # -------------------- Installing PHP Extension: intl --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
@@ -157,6 +211,39 @@ RUN set -eux \
&& true && true
# -------------------- Installing PHP Extension: mcrypt --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install mcrypt \
# Enabling
&& docker-php-ext-enable mcrypt \
&& true
# -------------------- Installing PHP Extension: msgpack --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install msgpack \
# Enabling
&& docker-php-ext-enable msgpack \
&& true
# -------------------- Installing PHP Extension: memcache --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install memcache \
# Enabling
&& docker-php-ext-enable memcache \
&& true
# -------------------- Installing PHP Extension: memcached -------------------- # -------------------- Installing PHP Extension: memcached --------------------
RUN set -eux \ RUN set -eux \
# Installation: Version specific # Installation: Version specific
@@ -181,17 +268,10 @@ RUN set -eux \
# -------------------- Installing PHP Extension: mongodb -------------------- # -------------------- Installing PHP Extension: mongodb --------------------
RUN set -eux \ RUN set -eux \
# Installation: Version specific # Installation: Generic
# Type: GIT extension # Type: PECL extension
&& git clone https://github.com/mongodb/mongo-php-driver /tmp/mongodb \ # Default: Pecl command
&& cd /tmp/mongodb \ && pecl install mongodb \
# Custom: Install command
&& git submodule update --init \
&& phpize \
&& ./configure --enable-mongodb \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
\
# Enabling # Enabling
&& docker-php-ext-enable mongodb \ && docker-php-ext-enable mongodb \
&& true && true
@@ -205,6 +285,17 @@ RUN set -eux \
&& true && true
# -------------------- Installing PHP Extension: oauth --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install oauth \
# Enabling
&& docker-php-ext-enable oauth \
&& true
# -------------------- Installing PHP Extension: oci8 -------------------- # -------------------- Installing PHP Extension: oci8 --------------------
RUN set -eux \ RUN set -eux \
# Generic pre-command # Generic pre-command
@@ -323,6 +414,17 @@ RUN set -eux \
&& true && true
# -------------------- Installing PHP Extension: psr --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install psr \
# Enabling
&& docker-php-ext-enable psr \
&& true
# -------------------- Installing PHP Extension: pspell -------------------- # -------------------- Installing PHP Extension: pspell --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
@@ -333,20 +435,22 @@ RUN set -eux \
# -------------------- Installing PHP Extension: redis -------------------- # -------------------- Installing PHP Extension: redis --------------------
RUN set -eux \ RUN set -eux \
# Installation: Version specific # Installation: Generic
# Type: GIT extension # Type: GIT extension
&& git clone https://github.com/phpredis/phpredis /tmp/redis \ && git clone https://github.com/phpredis/phpredis /tmp/redis \
&& cd /tmp/redis \ && cd /tmp/redis \
# Custom: Branch # Custom: Branch
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \ && git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
# Custom: Install command # Custom: Install command
&& sed -i'' 's/, ZSTR_LEN(ra->algorithm)//g' redis_array_impl.c \ && REDIS_ARGS=""; \
&& sed -i'' 's|.*sctx->cb\.no_separation.*||g' library.c \ if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
&& sed -i'' 's|.*sctx->cb\.no_separation.*||g' redis_array_impl.c \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
&& sed -i'' 's|.*sctx->cb\.no_separation.*||g' cluster_library.c \ fi; \
&& sed -i'' 's|.*->no_separation.*||g' redis_array_impl.c \ if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
&& phpize \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
&& ./configure --enable-redis \ fi; \
phpize \
&& ./configure --enable-redis ${REDIS_ARGS} \
&& make -j$(getconf _NPROCESSORS_ONLN) \ && make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \ && make install \
\ \
@@ -399,6 +503,17 @@ RUN set -eux \
&& true && true
# -------------------- Installing PHP Extension: solr --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install solr \
# Enabling
&& docker-php-ext-enable solr \
&& true
# -------------------- Installing PHP Extension: sysvmsg -------------------- # -------------------- Installing PHP Extension: sysvmsg --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
@@ -433,17 +548,10 @@ RUN set -eux \
# -------------------- Installing PHP Extension: xdebug -------------------- # -------------------- Installing PHP Extension: xdebug --------------------
RUN set -eux \ RUN set -eux \
# Installation: Version specific # Installation: Generic
# Type: GIT extension # Type: PECL extension
&& git clone https://github.com/xdebug/xdebug /tmp/xdebug \ # Default: Pecl command
&& cd /tmp/xdebug \ && pecl install xdebug \
# Custom: Branch
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
# Default: Install command
&& phpize \
&& ./configure --enable-xdebug \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
# Enabling # Enabling
&& docker-php-ext-enable xdebug \ && docker-php-ext-enable xdebug \
&& true && true
@@ -457,6 +565,28 @@ RUN set -eux \
&& true && true
# -------------------- Installing PHP Extension: xlswriter --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install xlswriter \
# Enabling
&& docker-php-ext-enable xlswriter \
&& true
# -------------------- Installing PHP Extension: yaml --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install yaml \
# Enabling
&& docker-php-ext-enable yaml \
&& true
# -------------------- Installing PHP Extension: zip -------------------- # -------------------- Installing PHP Extension: zip --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
@@ -527,12 +657,14 @@ RUN set -eux \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libaio1 \ libaio1 \
libaspell15 \ libaspell15 \
libc-client2007e \
libenchant1c2a \ libenchant1c2a \
libfbclient2 \ libfbclient2 \
libffi6 \ libffi6 \
libfreetype6 \ libfreetype6 \
libicu63 \ libicu63 \
libjpeg62-turbo \ libjpeg62-turbo \
libmcrypt4 \
libmemcachedutil2 \ libmemcachedutil2 \
libpng16-16 \ libpng16-16 \
libpq5 \ libpq5 \
@@ -542,6 +674,7 @@ RUN set -eux \
libwebp6 \ libwebp6 \
libxpm4 \ libxpm4 \
libxslt1.1 \ libxslt1.1 \
libyaml-0-2 \
libzip4 \ libzip4 \
snmp \ snmp \
ca-certificates \ ca-certificates \
@@ -582,6 +715,8 @@ RUN set -eux \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \ && if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini \ && rm -f /usr/local/etc/php/php.ini \
\ \
&& php -m | grep -oiE '^apcu$' \
&& php-fpm -m | grep -oiE '^apcu$' \
&& php -m | grep -oiE '^bcmath$' \ && php -m | grep -oiE '^bcmath$' \
&& php-fpm -m | grep -oiE '^bcmath$' \ && php-fpm -m | grep -oiE '^bcmath$' \
&& php -m | grep -oiE '^bz2$' \ && php -m | grep -oiE '^bz2$' \
@@ -618,6 +753,10 @@ RUN set -eux \
&& php-fpm -m | grep -oiE '^hash$' \ && php-fpm -m | grep -oiE '^hash$' \
&& php -m | grep -oiE '^iconv$' \ && php -m | grep -oiE '^iconv$' \
&& php-fpm -m | grep -oiE '^iconv$' \ && php-fpm -m | grep -oiE '^iconv$' \
&& php -m | grep -oiE '^igbinary$' \
&& php-fpm -m | grep -oiE '^igbinary$' \
&& php -m | grep -oiE '^imap$' \
&& php-fpm -m | grep -oiE '^imap$' \
&& php -m | grep -oiE '^intl$' \ && php -m | grep -oiE '^intl$' \
&& php-fpm -m | grep -oiE '^intl$' \ && php-fpm -m | grep -oiE '^intl$' \
&& php -m | grep -oiE '^json$' \ && php -m | grep -oiE '^json$' \
@@ -628,6 +767,12 @@ RUN set -eux \
&& php-fpm -m | grep -oiE '^libxml$' \ && php-fpm -m | grep -oiE '^libxml$' \
&& php -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \ && php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^mcrypt$' \
&& php-fpm -m | grep -oiE '^mcrypt$' \
&& php -m | grep -oiE '^msgpack$' \
&& php-fpm -m | grep -oiE '^msgpack$' \
&& php -m | grep -oiE '^memcache$' \
&& php-fpm -m | grep -oiE '^memcache$' \
&& php -m | grep -oiE '^memcached$' \ && php -m | grep -oiE '^memcached$' \
&& php-fpm -m | grep -oiE '^memcached$' \ && php-fpm -m | grep -oiE '^memcached$' \
&& php -m | grep -oiE '^mongodb$' \ && php -m | grep -oiE '^mongodb$' \
@@ -636,6 +781,8 @@ RUN set -eux \
&& php-fpm -m | grep -oiE '^mysqli$' \ && php-fpm -m | grep -oiE '^mysqli$' \
&& php -m | grep -oiE '^mysqlnd$' \ && php -m | grep -oiE '^mysqlnd$' \
&& php-fpm -m | grep -oiE '^mysqlnd$' \ && php-fpm -m | grep -oiE '^mysqlnd$' \
&& php -m | grep -oiE '^oauth$' \
&& php-fpm -m | grep -oiE '^oauth$' \
&& php -m | grep -oiE '^oci8$' \ && php -m | grep -oiE '^oci8$' \
&& php-fpm -m | grep -oiE '^oci8$' \ && php-fpm -m | grep -oiE '^oci8$' \
&& php -m | grep -oiE '^Zend Opcache$' \ && php -m | grep -oiE '^Zend Opcache$' \
@@ -662,6 +809,8 @@ RUN set -eux \
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \ && php-fpm -m | grep -oiE '^pdo_sqlite$' \
&& php -m | grep -oiE '^pgsql$' \ && php -m | grep -oiE '^pgsql$' \
&& php-fpm -m | grep -oiE '^pgsql$' \ && php-fpm -m | grep -oiE '^pgsql$' \
&& php -m | grep -oiE '^psr$' \
&& php-fpm -m | grep -oiE '^psr$' \
&& php -m | grep -oiE '^phar$' \ && php -m | grep -oiE '^phar$' \
&& php-fpm -m | grep -oiE '^phar$' \ && php-fpm -m | grep -oiE '^phar$' \
&& php -m | grep -oiE '^posix$' \ && php -m | grep -oiE '^posix$' \
@@ -687,6 +836,8 @@ RUN set -eux \
&& php-fpm -m | grep -oiE '^sockets$' \ && php-fpm -m | grep -oiE '^sockets$' \
&& php -m | grep -oiE '^sodium$' \ && php -m | grep -oiE '^sodium$' \
&& php-fpm -m | grep -oiE '^sodium$' \ && php-fpm -m | grep -oiE '^sodium$' \
&& php -m | grep -oiE '^solr$' \
&& php-fpm -m | grep -oiE '^solr$' \
&& php -m | grep -oiE '^spl$' \ && php -m | grep -oiE '^spl$' \
&& php-fpm -m | grep -oiE '^spl$' \ && php-fpm -m | grep -oiE '^spl$' \
&& php -m | grep -oiE '^sysvmsg$' \ && php -m | grep -oiE '^sysvmsg$' \
@@ -709,6 +860,10 @@ RUN set -eux \
&& php-fpm -m | grep -oiE '^xmlwriter$' \ && php-fpm -m | grep -oiE '^xmlwriter$' \
&& php -m | grep -oiE '^xsl$' \ && php -m | grep -oiE '^xsl$' \
&& php-fpm -m | grep -oiE '^xsl$' \ && php-fpm -m | grep -oiE '^xsl$' \
&& php -m | grep -oiE '^xlswriter$' \
&& php-fpm -m | grep -oiE '^xlswriter$' \
&& php -m | grep -oiE '^yaml$' \
&& php-fpm -m | grep -oiE '^yaml$' \
&& php -m | grep -oiE '^zip$' \ && php -m | grep -oiE '^zip$' \
&& php-fpm -m | grep -oiE '^zip$' \ && php-fpm -m | grep -oiE '^zip$' \
&& true && true

View File

@@ -11,9 +11,10 @@ RUN set -eux \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
alien \ alien \
firebird-dev \ firebird-dev \
freetds-dev \
libaio-dev \ libaio-dev \
libbz2-dev \ libbz2-dev \
libc-client-dev \
libcurl4-openssl-dev \
libenchant-dev \ libenchant-dev \
libevent-dev \ libevent-dev \
libfbclient2 \ libfbclient2 \
@@ -22,8 +23,11 @@ RUN set -eux \
libib-util \ libib-util \
libicu-dev \ libicu-dev \
libjpeg-dev \ libjpeg-dev \
libkrb5-dev \
libldap2-dev \ libldap2-dev \
libmcrypt-dev \
libmemcached-dev \ libmemcached-dev \
libpcre3-dev \
libpng-dev \ libpng-dev \
libpq-dev \ libpq-dev \
libpspell-dev \ libpspell-dev \
@@ -37,6 +41,7 @@ RUN set -eux \
libxml2-dev \ libxml2-dev \
libxpm-dev \ libxpm-dev \
libxslt-dev \ libxslt-dev \
libyaml-dev \
libzip-dev \ libzip-dev \
snmp \ snmp \
zlib1g-dev \ zlib1g-dev \
@@ -58,6 +63,17 @@ RUN set -eux \
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
fi fi
# -------------------- Installing PHP Extension: apcu --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install apcu \
# Enabling
&& docker-php-ext-enable apcu \
&& true
# -------------------- Installing PHP Extension: bcmath -------------------- # -------------------- Installing PHP Extension: bcmath --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
@@ -137,6 +153,29 @@ RUN set -eux \
&& true && true
# -------------------- Installing PHP Extension: igbinary --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install igbinary \
# Enabling
&& docker-php-ext-enable igbinary \
&& true
# -------------------- Installing PHP Extension: imap --------------------
RUN set -eux \
# Generic pre-command
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
# Installation: Generic
# Type: Built-in extension
# Custom: configure command
&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& true
# -------------------- Installing PHP Extension: intl -------------------- # -------------------- Installing PHP Extension: intl --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
@@ -157,6 +196,39 @@ RUN set -eux \
&& true && true
# -------------------- Installing PHP Extension: mcrypt --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install mcrypt \
# Enabling
&& docker-php-ext-enable mcrypt \
&& true
# -------------------- Installing PHP Extension: msgpack --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install msgpack \
# Enabling
&& docker-php-ext-enable msgpack \
&& true
# -------------------- Installing PHP Extension: memcache --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install memcache \
# Enabling
&& docker-php-ext-enable memcache \
&& true
# -------------------- Installing PHP Extension: memcached -------------------- # -------------------- Installing PHP Extension: memcached --------------------
RUN set -eux \ RUN set -eux \
# Installation: Version specific # Installation: Version specific
@@ -181,17 +253,10 @@ RUN set -eux \
# -------------------- Installing PHP Extension: mongodb -------------------- # -------------------- Installing PHP Extension: mongodb --------------------
RUN set -eux \ RUN set -eux \
# Installation: Version specific # Installation: Generic
# Type: GIT extension # Type: PECL extension
&& git clone https://github.com/mongodb/mongo-php-driver /tmp/mongodb \ # Default: Pecl command
&& cd /tmp/mongodb \ && pecl install mongodb \
# Custom: Install command
&& git submodule update --init \
&& phpize \
&& ./configure --enable-mongodb \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
\
# Enabling # Enabling
&& docker-php-ext-enable mongodb \ && docker-php-ext-enable mongodb \
&& true && true
@@ -205,6 +270,17 @@ RUN set -eux \
&& true && true
# -------------------- Installing PHP Extension: oauth --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install oauth \
# Enabling
&& docker-php-ext-enable oauth \
&& true
# -------------------- Installing PHP Extension: oci8 -------------------- # -------------------- Installing PHP Extension: oci8 --------------------
RUN set -eux \ RUN set -eux \
# Generic pre-command # Generic pre-command
@@ -252,16 +328,6 @@ RUN set -eux \
&& true && true
# -------------------- Installing PHP Extension: pdo_dblib --------------------
RUN set -eux \
# Generic pre-command
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
# Installation: Generic
# Type: Built-in extension
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
&& true
# -------------------- Installing PHP Extension: pdo_firebird -------------------- # -------------------- Installing PHP Extension: pdo_firebird --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
@@ -323,6 +389,17 @@ RUN set -eux \
&& true && true
# -------------------- Installing PHP Extension: psr --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install psr \
# Enabling
&& docker-php-ext-enable psr \
&& true
# -------------------- Installing PHP Extension: pspell -------------------- # -------------------- Installing PHP Extension: pspell --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
@@ -340,13 +417,17 @@ RUN set -eux \
# Custom: Branch # Custom: Branch
&& git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \ && git checkout $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) \
# Custom: Install command # Custom: Install command
&& sed -i'' 's/, ZSTR_LEN(ra->algorithm)//g' redis_array_impl.c \ && REDIS_ARGS=""; \
&& sed -i'' 's|.*sctx->cb\.no_separation.*||g' library.c \ if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
&& sed -i'' 's|.*sctx->cb\.no_separation.*||g' redis_array_impl.c \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
&& sed -i'' 's|.*sctx->cb\.no_separation.*||g' cluster_library.c \ fi; \
&& sed -i'' 's|.*->no_separation.*||g' redis_array_impl.c \ if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
&& phpize \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
&& ./configure --enable-redis \ fi; \
phpize \
&& ./configure --enable-redis ${REDIS_ARGS} \
&& sed -i'' 's/ops->hash_init(ctx);/ops->hash_init(ctx, NULL);/g' library.c \
&& sed -i'' 's/ops->hash_init(ctx);/ops->hash_init(ctx, NULL);/g' redis_array_impl.c \
&& make -j$(getconf _NPROCESSORS_ONLN) \ && make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \ && make install \
\ \
@@ -399,6 +480,17 @@ RUN set -eux \
&& true && true
# -------------------- Installing PHP Extension: solr --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install solr \
# Enabling
&& docker-php-ext-enable solr \
&& true
# -------------------- Installing PHP Extension: sysvmsg -------------------- # -------------------- Installing PHP Extension: sysvmsg --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
@@ -457,6 +549,28 @@ RUN set -eux \
&& true && true
# -------------------- Installing PHP Extension: xlswriter --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install xlswriter \
# Enabling
&& docker-php-ext-enable xlswriter \
&& true
# -------------------- Installing PHP Extension: yaml --------------------
RUN set -eux \
# Installation: Generic
# Type: PECL extension
# Default: Pecl command
&& pecl install yaml \
# Enabling
&& docker-php-ext-enable yaml \
&& true
# -------------------- Installing PHP Extension: zip -------------------- # -------------------- Installing PHP Extension: zip --------------------
RUN set -eux \ RUN set -eux \
# Installation: Generic # Installation: Generic
@@ -527,21 +641,23 @@ RUN set -eux \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libaio1 \ libaio1 \
libaspell15 \ libaspell15 \
libc-client2007e \
libenchant1c2a \ libenchant1c2a \
libfbclient2 \ libfbclient2 \
libffi6 \ libffi6 \
libfreetype6 \ libfreetype6 \
libicu63 \ libicu63 \
libjpeg62-turbo \ libjpeg62-turbo \
libmcrypt4 \
libmemcachedutil2 \ libmemcachedutil2 \
libpng16-16 \ libpng16-16 \
libpq5 \ libpq5 \
libsybdb5 \
libtidy5deb1 \ libtidy5deb1 \
libvpx5 \ libvpx5 \
libwebp6 \ libwebp6 \
libxpm4 \ libxpm4 \
libxslt1.1 \ libxslt1.1 \
libyaml-0-2 \
libzip4 \ libzip4 \
snmp \ snmp \
ca-certificates \ ca-certificates \
@@ -582,6 +698,8 @@ RUN set -eux \
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \ && if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
&& rm -f /usr/local/etc/php/php.ini \ && rm -f /usr/local/etc/php/php.ini \
\ \
&& php -m | grep -oiE '^apcu$' \
&& php-fpm -m | grep -oiE '^apcu$' \
&& php -m | grep -oiE '^bcmath$' \ && php -m | grep -oiE '^bcmath$' \
&& php-fpm -m | grep -oiE '^bcmath$' \ && php-fpm -m | grep -oiE '^bcmath$' \
&& php -m | grep -oiE '^bz2$' \ && php -m | grep -oiE '^bz2$' \
@@ -618,6 +736,10 @@ RUN set -eux \
&& php-fpm -m | grep -oiE '^hash$' \ && php-fpm -m | grep -oiE '^hash$' \
&& php -m | grep -oiE '^iconv$' \ && php -m | grep -oiE '^iconv$' \
&& php-fpm -m | grep -oiE '^iconv$' \ && php-fpm -m | grep -oiE '^iconv$' \
&& php -m | grep -oiE '^igbinary$' \
&& php-fpm -m | grep -oiE '^igbinary$' \
&& php -m | grep -oiE '^imap$' \
&& php-fpm -m | grep -oiE '^imap$' \
&& php -m | grep -oiE '^intl$' \ && php -m | grep -oiE '^intl$' \
&& php-fpm -m | grep -oiE '^intl$' \ && php-fpm -m | grep -oiE '^intl$' \
&& php -m | grep -oiE '^json$' \ && php -m | grep -oiE '^json$' \
@@ -628,6 +750,12 @@ RUN set -eux \
&& php-fpm -m | grep -oiE '^libxml$' \ && php-fpm -m | grep -oiE '^libxml$' \
&& php -m | grep -oiE '^mbstring$' \ && php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \ && php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^mcrypt$' \
&& php-fpm -m | grep -oiE '^mcrypt$' \
&& php -m | grep -oiE '^msgpack$' \
&& php-fpm -m | grep -oiE '^msgpack$' \
&& php -m | grep -oiE '^memcache$' \
&& php-fpm -m | grep -oiE '^memcache$' \
&& php -m | grep -oiE '^memcached$' \ && php -m | grep -oiE '^memcached$' \
&& php-fpm -m | grep -oiE '^memcached$' \ && php-fpm -m | grep -oiE '^memcached$' \
&& php -m | grep -oiE '^mongodb$' \ && php -m | grep -oiE '^mongodb$' \
@@ -636,6 +764,8 @@ RUN set -eux \
&& php-fpm -m | grep -oiE '^mysqli$' \ && php-fpm -m | grep -oiE '^mysqli$' \
&& php -m | grep -oiE '^mysqlnd$' \ && php -m | grep -oiE '^mysqlnd$' \
&& php-fpm -m | grep -oiE '^mysqlnd$' \ && php-fpm -m | grep -oiE '^mysqlnd$' \
&& php -m | grep -oiE '^oauth$' \
&& php-fpm -m | grep -oiE '^oauth$' \
&& php -m | grep -oiE '^oci8$' \ && php -m | grep -oiE '^oci8$' \
&& php-fpm -m | grep -oiE '^oci8$' \ && php-fpm -m | grep -oiE '^oci8$' \
&& php -m | grep -oiE '^Zend Opcache$' \ && php -m | grep -oiE '^Zend Opcache$' \
@@ -648,8 +778,6 @@ RUN set -eux \
&& php-fpm -m | grep -oiE '^pcre$' \ && php-fpm -m | grep -oiE '^pcre$' \
&& php -m | grep -oiE '^pdo$' \ && php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \ && php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^pdo_dblib$' \
&& php-fpm -m | grep -oiE '^pdo_dblib$' \
&& php -m | grep -oiE '^pdo_firebird$' \ && php -m | grep -oiE '^pdo_firebird$' \
&& php-fpm -m | grep -oiE '^pdo_firebird$' \ && php-fpm -m | grep -oiE '^pdo_firebird$' \
&& php -m | grep -oiE '^pdo_mysql$' \ && php -m | grep -oiE '^pdo_mysql$' \
@@ -662,6 +790,8 @@ RUN set -eux \
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \ && php-fpm -m | grep -oiE '^pdo_sqlite$' \
&& php -m | grep -oiE '^pgsql$' \ && php -m | grep -oiE '^pgsql$' \
&& php-fpm -m | grep -oiE '^pgsql$' \ && php-fpm -m | grep -oiE '^pgsql$' \
&& php -m | grep -oiE '^psr$' \
&& php-fpm -m | grep -oiE '^psr$' \
&& php -m | grep -oiE '^phar$' \ && php -m | grep -oiE '^phar$' \
&& php-fpm -m | grep -oiE '^phar$' \ && php-fpm -m | grep -oiE '^phar$' \
&& php -m | grep -oiE '^posix$' \ && php -m | grep -oiE '^posix$' \
@@ -687,6 +817,8 @@ RUN set -eux \
&& php-fpm -m | grep -oiE '^sockets$' \ && php-fpm -m | grep -oiE '^sockets$' \
&& php -m | grep -oiE '^sodium$' \ && php -m | grep -oiE '^sodium$' \
&& php-fpm -m | grep -oiE '^sodium$' \ && php-fpm -m | grep -oiE '^sodium$' \
&& php -m | grep -oiE '^solr$' \
&& php-fpm -m | grep -oiE '^solr$' \
&& php -m | grep -oiE '^spl$' \ && php -m | grep -oiE '^spl$' \
&& php-fpm -m | grep -oiE '^spl$' \ && php-fpm -m | grep -oiE '^spl$' \
&& php -m | grep -oiE '^sysvmsg$' \ && php -m | grep -oiE '^sysvmsg$' \
@@ -709,6 +841,10 @@ RUN set -eux \
&& php-fpm -m | grep -oiE '^xmlwriter$' \ && php-fpm -m | grep -oiE '^xmlwriter$' \
&& php -m | grep -oiE '^xsl$' \ && php -m | grep -oiE '^xsl$' \
&& php-fpm -m | grep -oiE '^xsl$' \ && php-fpm -m | grep -oiE '^xsl$' \
&& php -m | grep -oiE '^xlswriter$' \
&& php-fpm -m | grep -oiE '^xlswriter$' \
&& php -m | grep -oiE '^yaml$' \
&& php-fpm -m | grep -oiE '^yaml$' \
&& php -m | grep -oiE '^zip$' \ && php -m | grep -oiE '^zip$' \
&& php-fpm -m | grep -oiE '^zip$' \ && php-fpm -m | grep -oiE '^zip$' \
&& true && true

View File

@@ -120,7 +120,7 @@ RUN set -eux \
zip \ zip \
zlib1g-dev \ zlib1g-dev \
zsh \ zsh \
zsh-common=5.3.1-4 \ zsh-common \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \

View File

@@ -120,7 +120,7 @@ RUN set -eux \
zip \ zip \
zlib1g-dev \ zlib1g-dev \
zsh \ zsh \
zsh-common=5.3.1-4 \ zsh-common \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
\ \

View File

@@ -10,40 +10,40 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = On display_errors = On
display_startup_errors = On display_startup_errors = On
track_errors = On track_errors = On
log_errors = On log_errors = On
html_errors = On html_errors = On
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.default_enable = Off
xdebug.profiler_enable = Off xdebug.profiler_enable = Off
xdebug.remote_enable = Off xdebug.remote_enable = Off
xdebug.remote_autostart = Off xdebug.remote_autostart = Off

View File

@@ -10,40 +10,40 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = On display_errors = On
display_startup_errors = On display_startup_errors = On
track_errors = On track_errors = On
log_errors = On log_errors = On
html_errors = On html_errors = On
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.default_enable = Off
xdebug.profiler_enable = Off xdebug.profiler_enable = Off
xdebug.remote_enable = Off xdebug.remote_enable = Off
xdebug.remote_autostart = Off xdebug.remote_autostart = Off

View File

@@ -10,41 +10,41 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = On display_errors = On
display_startup_errors = On display_startup_errors = On
track_errors = On track_errors = On
log_errors = On log_errors = On
html_errors = On html_errors = On
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.default_enable = Off
xdebug.profiler_enable = Off xdebug.profiler_enable = Off
xdebug.remote_enable = Off xdebug.remote_enable = Off
xdebug.remote_autostart = Off xdebug.remote_autostart = Off

View File

@@ -10,41 +10,41 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = On display_errors = On
display_startup_errors = On display_startup_errors = On
track_errors = On track_errors = On
log_errors = On log_errors = On
html_errors = On html_errors = On
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.default_enable = Off
xdebug.profiler_enable = Off xdebug.profiler_enable = Off
xdebug.remote_enable = Off xdebug.remote_enable = Off
xdebug.remote_autostart = Off xdebug.remote_autostart = Off

View File

@@ -10,41 +10,41 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = On display_errors = On
display_startup_errors = On display_startup_errors = On
track_errors = On track_errors = On
log_errors = On log_errors = On
html_errors = On html_errors = On
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.default_enable = Off
xdebug.profiler_enable = Off xdebug.profiler_enable = Off
xdebug.remote_enable = Off xdebug.remote_enable = Off
xdebug.remote_autostart = Off xdebug.remote_autostart = Off

View File

@@ -10,41 +10,41 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = On display_errors = On
display_startup_errors = On display_startup_errors = On
track_errors = On track_errors = On
log_errors = On log_errors = On
html_errors = On html_errors = On
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.default_enable = Off
xdebug.profiler_enable = Off xdebug.profiler_enable = Off
xdebug.remote_enable = Off xdebug.remote_enable = Off
xdebug.remote_autostart = Off xdebug.remote_autostart = Off

View File

@@ -10,41 +10,41 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = On display_errors = On
display_startup_errors = On display_startup_errors = On
track_errors = On track_errors = On
log_errors = On log_errors = On
html_errors = On html_errors = On
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.default_enable = Off
xdebug.profiler_enable = Off xdebug.profiler_enable = Off
xdebug.remote_enable = Off xdebug.remote_enable = Off
xdebug.remote_autostart = Off xdebug.remote_autostart = Off

View File

@@ -10,40 +10,39 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = On display_errors = On
display_startup_errors = On display_startup_errors = On
log_errors = On log_errors = On
html_errors = On html_errors = On
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.mode = Off
xdebug.profiler_enable = Off xdebug.start_with_request = default
xdebug.remote_enable = Off xdebug.client_port = 9000
xdebug.remote_autostart = Off

View File

@@ -10,40 +10,39 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = On display_errors = On
display_startup_errors = On display_startup_errors = On
log_errors = On log_errors = On
html_errors = On html_errors = On
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.mode = Off
xdebug.profiler_enable = Off xdebug.start_with_request = default
xdebug.remote_enable = Off xdebug.client_port = 9000
xdebug.remote_autostart = Off

View File

@@ -10,40 +10,39 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = On display_errors = On
display_startup_errors = On display_startup_errors = On
log_errors = On log_errors = On
html_errors = On html_errors = On
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.mode = Off
xdebug.profiler_enable = Off xdebug.start_with_request = default
xdebug.remote_enable = Off xdebug.client_port = 9000
xdebug.remote_autostart = Off

View File

@@ -10,40 +10,39 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = On display_errors = On
display_startup_errors = On display_startup_errors = On
log_errors = On log_errors = On
html_errors = On html_errors = On
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.mode = Off
xdebug.profiler_enable = Off xdebug.start_with_request = default
xdebug.remote_enable = Off xdebug.client_port = 9000
xdebug.remote_autostart = Off

View File

@@ -10,40 +10,39 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M memory_limit = 512M
; Timeouts ; Timeouts
max_execution_time = 120 max_execution_time = 120
max_input_time = 120 max_input_time = 120
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M post_max_size = 72M
upload_max_filesize = 64M upload_max_filesize = 64M
max_file_uploads = 20 max_file_uploads = 20
; Vars ; Vars
variables_order = EGPCS variables_order = EGPCS
max_input_vars = 8000 max_input_vars = 8000
max_input_nesting_level = 64 max_input_nesting_level = 64
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off xmlrpc_errors = Off
report_memleaks = On report_memleaks = On
display_errors = On display_errors = On
display_startup_errors = On display_startup_errors = On
log_errors = On log_errors = On
html_errors = On html_errors = On
; Xdebug settings ; Xdebug settings
xdebug.default_enable = Off xdebug.mode = Off
xdebug.profiler_enable = Off xdebug.start_with_request = default
xdebug.remote_enable = Off xdebug.client_port = 9000
xdebug.remote_autostart = Off

View File

@@ -4,4 +4,3 @@ Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/loca
# Allow devilbox user to do anything without password # Allow devilbox user to do anything without password
%devilbox ALL=(ALL) NOPASSWD: ALL %devilbox ALL=(ALL) NOPASSWD: ALL

View File

@@ -7,6 +7,8 @@ endif
# Docker configuration # Docker configuration
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
CURRENT_DIR = $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
DIR = Dockerfiles DIR = Dockerfiles
IMAGE = devilbox/php-fpm IMAGE = devilbox/php-fpm
NO_CACHE = NO_CACHE =
@@ -15,6 +17,11 @@ PHP_EXT_DIR =
# Run checks after each module has been installed (slow, but yields errors faster) # Run checks after each module has been installed (slow, but yields errors faster)
FAIL_FAST = False FAIL_FAST = False
# File lint
FL_VERSION = 0.3
FL_IGNORES = .git/,.github/
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
# DEFAULT TARGET # DEFAULT TARGET
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
@@ -31,6 +38,8 @@ help:
@echo "Targets" @echo "Targets"
@echo "--------------------------------------------------------------------------------" @echo "--------------------------------------------------------------------------------"
@echo @echo
@echo "lint Lint project files and repository"
@echo
@echo "gen-readme [VERSION=] Update README with PHP modules from built images." @echo "gen-readme [VERSION=] Update README with PHP modules from built images."
@echo "gen-dockerfiles [FAIL_FAST=] Generate Dockerfiles from templates." @echo "gen-dockerfiles [FAIL_FAST=] Generate Dockerfiles from templates."
@echo @echo
@@ -67,6 +76,70 @@ help:
@echo "ARGS Can be added to all build-* and rebuild-* targets" @echo "ARGS Can be added to all build-* and rebuild-* targets"
@echo " to supply additional docker build options." @echo " to supply additional docker build options."
# -------------------------------------------------------------------------------------------------
# Lint Targets
# -------------------------------------------------------------------------------------------------
lint: lint-files
lint: lint-yaml
lint: lint-changelog
lint: lint-workflow
lint-workflow:
@echo "################################################################################"
@echo "# Lint Workflow"
@echo "################################################################################"
@\
GIT_CURR_MAJOR="$$( git tag | sort -V | tail -1 | sed 's|\.[0-9]*$$||g' )"; \
GIT_CURR_MINOR="$$( git tag | sort -V | tail -1 | sed 's|^[0-9]*\.||g' )"; \
GIT_NEXT_TAG="$${GIT_CURR_MAJOR}.$$(( GIT_CURR_MINOR + 1 ))"; \
if ! grep 'refs:' -A 100 .github/workflows/nightly.yml \
| grep " - '$${GIT_NEXT_TAG}'" >/dev/null; then \
echo "[ERR] New Tag required in .github/workflows/nightly.yml: $${GIT_NEXT_TAG}"; \
exit 1; \
else \
echo "[OK] Git Tag present in .github/workflows/nightly.yml: $${GIT_NEXT_TAG}"; \
fi
@echo
lint-changelog:
@echo "################################################################################"
@echo "# Lint Changelog"
@echo "################################################################################"
@\
GIT_CURR_MAJOR="$$( git tag | sort -V | tail -1 | sed 's|\.[0-9]*$$||g' )"; \
GIT_CURR_MINOR="$$( git tag | sort -V | tail -1 | sed 's|^[0-9]*\.||g' )"; \
GIT_NEXT_TAG="$${GIT_CURR_MAJOR}.$$(( GIT_CURR_MINOR + 1 ))"; \
if ! grep -E "^## Release $${GIT_NEXT_TAG}$$" CHANGELOG.md >/dev/null; then \
echo "[ERR] Missing '## Release $${GIT_NEXT_TAG}' section in CHANGELOG.md"; \
exit 1; \
else \
echo "[OK] Section '## Release $${GIT_NEXT_TAG}' present in CHANGELOG.md"; \
fi
@echo
lint-files:
@echo "################################################################################"
@echo "# Lint Files"
@echo "################################################################################"
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-cr --text --ignore '$(FL_IGNORES)' --path .
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-crlf --text --ignore '$(FL_IGNORES)' --path .
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-trailing-single-newline --text --ignore '$(FL_IGNORES)' --path .
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-trailing-space --text --ignore '$(FL_IGNORES)' --path .
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-utf8 --text --ignore '$(FL_IGNORES)' --path .
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-utf8-bom --text --ignore '$(FL_IGNORES)' --path .
@echo
lint-yaml:
@# Lint all files
@echo "################################################################################"
@echo "# Lint Yaml"
@echo "################################################################################"
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/yamllint .
@echo
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
# GENERATE TARGETS # GENERATE TARGETS
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
@@ -83,7 +156,6 @@ else
cd build; ./gen-readme.sh $(VERSION) cd build; ./gen-readme.sh $(VERSION)
endif endif
gen-dockerfiles: gen-dockerfiles:
docker run --rm \ docker run --rm \
$$(tty -s && echo "-it" || echo) \ $$(tty -s && echo "-it" || echo) \
@@ -180,7 +252,7 @@ build-work:
# REBUILD TARGETS # REBUILD TARGETS
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
rebuild-base: _pull-root-image rebuild-base: _pull-base-image
rebuild-base: NO_CACHE=--no-cache rebuild-base: NO_CACHE=--no-cache
rebuild-base: build-base rebuild-base: build-base
@@ -338,6 +410,6 @@ _check-image-exists:
fi; fi;
_pull-root-image: _pull-base-image:
@echo "Pulling root image for PHP ${VERSION}" @echo "Pulling root image for PHP ${VERSION}"
@docker pull $(shell grep FROM $(DIR)/base/Dockerfile-${VERSION} | sed 's/^FROM\s*//g';) @docker pull $(shell grep FROM $(DIR)/base/Dockerfile-${VERSION} | sed 's/^FROM\s*//g';)

View File

@@ -1,9 +1,8 @@
# PHP-FPM Docker images # PHP-FPM Docker images
[![Linting](https://github.com/devilbox/docker-php-fpm/workflows/Linting/badge.svg)](https://github.com/devilbox/docker-php-fpm/actions?workflow=Linting) [![lint](https://github.com/devilbox/docker-php-fpm/workflows/lint/badge.svg)](https://github.com/devilbox/docker-php-fpm/actions?workflow=lint)
[![CI](https://github.com/devilbox/docker-php-fpm/workflows/PHP-CI/badge.svg)](https://github.com/devilbox/docker-php-fpm/actions?workflow=PHP-CI) [![build](https://github.com/devilbox/docker-php-fpm/workflows/build/badge.svg)](https://github.com/devilbox/docker-php-fpm/actions?workflow=build)
[![Nightly](https://github.com/devilbox/docker-php-fpm/workflows/PHP-Nightly/badge.svg)](https://github.com/devilbox/docker-php-fpm/actions?workflow=PHP-Nightly) [![nightly](https://github.com/devilbox/docker-php-fpm/workflows/nightly/badge.svg)](https://github.com/devilbox/docker-php-fpm/actions?workflow=nightly)
[![Travis](https://travis-ci.org/devilbox/docker-php-fpm.svg?branch=master)](https://travis-ci.org/devilbox/docker-php-fpm)
[![Release](https://img.shields.io/github/release/devilbox/docker-php-fpm.svg?colorB=orange)](https://github.com/devilbox/docker-php-fpm/releases) [![Release](https://img.shields.io/github/release/devilbox/docker-php-fpm.svg?colorB=orange)](https://github.com/devilbox/docker-php-fpm/releases)
[![Gitter](https://badges.gitter.im/devilbox/Lobby.svg)](https://gitter.im/devilbox/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Gitter](https://badges.gitter.im/devilbox/Lobby.svg)](https://gitter.im/devilbox/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Discourse](https://img.shields.io/discourse/https/devilbox.discourse.group/status.svg?colorB=%234CB697)](https://devilbox.discourse.group) [![Discourse](https://img.shields.io/discourse/https/devilbox.discourse.group/status.svg?colorB=%234CB697)](https://devilbox.discourse.group)
@@ -114,7 +113,7 @@ One main problem with a running Docker container is to **synchronize the ownersh
#### Unsynchronized permissions #### Unsynchronized permissions
Consider the following directory structure of a mounted volume. Your hosts computer uid/gid are `1000` which does not have a corresponding user/group within the container. Fortunately the `tmp/` directory allows everybody to create new files in it. Consider the following directory structure of a mounted volume. Your hosts computer uid/gid are `1000` which does not have a corresponding user/group within the container. Fortunately the `tmp/` directory allows everybody to create new files in it.
```shell ```shell
[Host] | [Container] [Host] | [Container]
@@ -681,12 +680,12 @@ Check out this table to see which Docker image provides what PHP modules.
<tr> <tr>
<th>8.0</th> <th>8.0</th>
<td id="80-base">Core, ctype, curl, date, dom, FFI, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td> <td id="80-base">Core, ctype, curl, date, dom, FFI, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
<td id="80-mods">bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, intl, json, ldap, libxml, mbstring, memcached, mongodb, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, xdebug, xml, xmlreader, xmlwriter, xsl, Zend OPcache, zip, zlib</td> <td id="80-mods">apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imap, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, psr, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, xdebug, xlswriter, xml, xmlreader, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib</td>
</tr> </tr>
<tr> <tr>
<th>8.1</th> <th>8.1</th>
<td id="81-base">Core, ctype, curl, date, dom, FFI, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td> <td id="81-base">Core, ctype, curl, date, dom, FFI, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
<td id="81-mods">bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, intl, json, ldap, libxml, mbstring, memcached, mongodb, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, xdebug, xml, xmlreader, xmlwriter, xsl, Zend OPcache, zip, zlib</td> <td id="81-mods">apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imap, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, psr, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, xdebug, xlswriter, xml, xmlreader, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@@ -978,7 +977,7 @@ If you plan to use the PHP-FPM image for development, hence being able to execut
The **work** Docker image has many common tools already installed which on one hand increases its image size, but on the other hand removes the necessity to install those tools locally. The **work** Docker image has many common tools already installed which on one hand increases its image size, but on the other hand removes the necessity to install those tools locally.
You want to use tools such as `git`, `drush`, `composer`, `npm`, `eslint`, `phpcs` as well as many others, simply do it directly inside the container. As all Docker images are auto-built every night by travis-ci it is assured that you are always at the latest version of your favorite dev tool. You want to use tools such as `git`, `drush`, `composer`, `npm`, `eslint`, `phpcs` as well as many others, simply do it directly inside the container. As all Docker images are auto-built every night by GitHub Actions it is assured that you are always at the latest version of your favorite dev tool.
#### What tools can you expect #### What tools can you expect
@@ -1180,7 +1179,10 @@ $ docker run -d \
```shell ```shell
# Create config directory to be mounted with dummy configuration # Create config directory to be mounted with dummy configuration
$ mkdir config $ mkdir config
# Xdebug 2
$ echo "xdebug.enable = 1" > config/xdebug.ini $ echo "xdebug.enable = 1" > config/xdebug.ini
# Xdebug 3
$ echo "xdebug.mode = debug" > config/xdebug.ini
# Run container and mount it # Run container and mount it
$ docker run -d \ $ docker run -d \
@@ -1284,10 +1286,9 @@ $ docker exec -it php mysqldump-secure
<h2><img id="automated-builds" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Automated builds</h2> <h2><img id="automated-builds" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Automated builds</h2>
[![Nightly](https://github.com/devilbox/docker-php-fpm/workflows/PHP-Nightly/badge.svg)](https://github.com/devilbox/docker-php-fpm/actions?workflow=PHP-Nightly) [![nightly](https://github.com/devilbox/docker-php-fpm/workflows/nightly/badge.svg)](https://github.com/devilbox/docker-php-fpm/actions?workflow=nightly)
[![Travis](https://travis-ci.org/devilbox/docker-php-fpm.svg?branch=master)](https://travis-ci.org/devilbox/docker-php-fpm)
Docker images are built and tested every night by **[travis-ci](https://travis-ci.org/devilbox/docker-php-fpm)** and pushed to **[Docker hub](https://hub.docker.com/r/devilbox/php-fpm/)** on success. This is all done automatically to ensure that sources as well as base images are always fresh and in case of security updates always have the latest patches. Docker images are built and tested every night by **[GitHub Actions](https://github.com/devilbox/docker-php-fpm/actions?workflow=nightly)** and pushed to **[Docker hub](https://hub.docker.com/r/devilbox/php-fpm/)** on success. This is all done automatically to ensure that sources as well as base images are always fresh and in case of security updates always have the latest patches.
<h2><img id="contributing" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Contributing</h2> <h2><img id="contributing" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Contributing</h2>

View File

@@ -10,47 +10,53 @@
; Memory ; Memory
; Note: "memory_limit" should be larger than "post_max_size" ; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = {{ item.cfg[item.key].memory_limit | default(item.cfg[item.alt].memory_limit) }} memory_limit = {{ item.cfg[item.key].memory_limit | default(item.cfg[item.alt].memory_limit) }}
; Timeouts ; Timeouts
max_execution_time = {{ item.cfg[item.key].max_execution_time | default(item.cfg[item.alt].max_execution_time) }} max_execution_time = {{ item.cfg[item.key].max_execution_time | default(item.cfg[item.alt].max_execution_time) }}
max_input_time = {{ item.cfg[item.key].max_input_time | default(item.cfg[item.alt].max_input_time) }} max_input_time = {{ item.cfg[item.key].max_input_time | default(item.cfg[item.alt].max_input_time) }}
; Uploads ; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize" ; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = {{ item.cfg[item.key].post_max_size | default(item.cfg[item.alt].post_max_size) }} post_max_size = {{ item.cfg[item.key].post_max_size | default(item.cfg[item.alt].post_max_size) }}
upload_max_filesize = {{ item.cfg[item.key].upload_max_filesize | default(item.cfg[item.alt].upload_max_filesize) }} upload_max_filesize = {{ item.cfg[item.key].upload_max_filesize | default(item.cfg[item.alt].upload_max_filesize) }}
max_file_uploads = {{ item.cfg[item.key].max_file_uploads | default(item.cfg[item.alt].max_file_uploads) }} max_file_uploads = {{ item.cfg[item.key].max_file_uploads | default(item.cfg[item.alt].max_file_uploads) }}
; Vars ; Vars
variables_order = {{ item.cfg[item.key].variables_order | default(item.cfg[item.alt].variables_order) }} variables_order = {{ item.cfg[item.key].variables_order | default(item.cfg[item.alt].variables_order) }}
{# Only available since PHP >=5.4 #} {# Only available since PHP >=5.4 #}
{% if not (php_version == 5.2 or php_version == 5.3 ) %} {% if not (php_version == 5.2 or php_version == 5.3 ) %}
max_input_vars = {{ item.cfg[item.key].max_input_vars | default(item.cfg[item.alt].max_input_vars) }} max_input_vars = {{ item.cfg[item.key].max_input_vars | default(item.cfg[item.alt].max_input_vars) }}
{% endif %} {% endif %}
max_input_nesting_level = {{ item.cfg[item.key].max_input_nesting_level | default(item.cfg[item.alt].max_input_nesting_level) }} max_input_nesting_level = {{ item.cfg[item.key].max_input_nesting_level | default(item.cfg[item.alt].max_input_nesting_level) }}
; Error reporting ; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting ; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = {{ item.cfg[item.key].error_reporting | default(item.cfg[item.alt].error_reporting) }} error_reporting = {{ item.cfg[item.key].error_reporting | default(item.cfg[item.alt].error_reporting) }}
xmlrpc_errors = {{ item.cfg[item.key].xmlrpc_errors | default(item.cfg[item.alt].xmlrpc_errors) }} xmlrpc_errors = {{ item.cfg[item.key].xmlrpc_errors | default(item.cfg[item.alt].xmlrpc_errors) }}
report_memleaks = {{ item.cfg[item.key].report_memleaks | default(item.cfg[item.alt].report_memleaks) }} report_memleaks = {{ item.cfg[item.key].report_memleaks | default(item.cfg[item.alt].report_memleaks) }}
display_errors = {{ item.cfg[item.key].display_errors | default(item.cfg[item.alt].display_errors) }} display_errors = {{ item.cfg[item.key].display_errors | default(item.cfg[item.alt].display_errors) }}
display_startup_errors = {{ item.cfg[item.key].display_startup_errors | default(item.cfg[item.alt].display_startup_errors) }} display_startup_errors = {{ item.cfg[item.key].display_startup_errors | default(item.cfg[item.alt].display_startup_errors) }}
{# Only available before PHP 7.2 #} {# Only available before PHP 7.2 #}
{% if php_version == 5.2 or php_version == 5.3 or php_version == 5.4 or php_version == 5.5 or php_version == 5.6 or php_version == 7.0 or php_version == 7.1 %} {% if php_version == 5.2 or php_version == 5.3 or php_version == 5.4 or php_version == 5.5 or php_version == 5.6 or php_version == 7.0 or php_version == 7.1 %}
track_errors = {{ item.cfg[item.key].track_errors | default(item.cfg[item.alt].track_errors) }} track_errors = {{ item.cfg[item.key].track_errors | default(item.cfg[item.alt].track_errors) }}
{% endif %} {% endif %}
log_errors = {{ item.cfg[item.key].log_errors | default(item.cfg[item.alt].log_errors) }} log_errors = {{ item.cfg[item.key].log_errors | default(item.cfg[item.alt].log_errors) }}
html_errors = {{ item.cfg[item.key].html_errors | default(item.cfg[item.alt].html_errors) }} html_errors = {{ item.cfg[item.key].html_errors | default(item.cfg[item.alt].html_errors) }}
; Xdebug settings ; Xdebug settings
xdebug.default_enable = {{ item.cfg[item.key].xdebug_default_enable | default(item.cfg[item.alt].xdebug_default_enable) }} {% if php_version == 5.2 or php_version == 5.3 or php_version == 5.4 or php_version == 5.5 or php_version == 5.6 or php_version == 7.0 or php_version == 7.1 %}
xdebug.profiler_enable = {{ item.cfg[item.key].xdebug_profiler_enable | default(item.cfg[item.alt].xdebug_profiler_enable) }} xdebug.default_enable = {{ item.cfg[item.key].xdebug2_default_enable | default(item.cfg[item.alt].xdebug2_default_enable) }}
xdebug.remote_enable = {{ item.cfg[item.key].xdebug_remote_enable | default(item.cfg[item.alt].xdebug_remote_enable) }} xdebug.profiler_enable = {{ item.cfg[item.key].xdebug2_profiler_enable | default(item.cfg[item.alt].xdebug2_profiler_enable) }}
xdebug.remote_autostart = {{ item.cfg[item.key].xdebug_remote_autostart | default(item.cfg[item.alt].xdebug_remote_autostart) }} xdebug.remote_enable = {{ item.cfg[item.key].xdebug2_remote_enable | default(item.cfg[item.alt].xdebug2_remote_enable) }}
xdebug.remote_autostart = {{ item.cfg[item.key].xdebug2_remote_autostart | default(item.cfg[item.alt].xdebug2_remote_autostart) }}
{% else %}
xdebug.mode = {{ item.cfg[item.key].xdebug3_mode | default(item.cfg[item.alt].xdebug3_mode) }}
xdebug.start_with_request = {{ item.cfg[item.key].xdebug3_start_with_request | default(item.cfg[item.alt].xdebug3_start_with_request) }}
xdebug.client_port = {{ item.cfg[item.key].xdebug3_client_port | default(item.cfg[item.alt].xdebug3_client_port) }}
{% endif %}

View File

@@ -141,7 +141,7 @@ RUN set -eux \
zlib1g-dev \ zlib1g-dev \
zsh \ zsh \
{% if php_version in [5.6, 7.0] %} {% if php_version in [5.6, 7.0] %}
zsh-common=5.3.1-4 \ zsh-common \
{% endif %} {% endif %}
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \

View File

@@ -17,33 +17,37 @@ php_settings_ini:
# ---- Sane default ---- # ---- Sane default ----
base: base:
# Memory # Memory
memory_limit: 512M memory_limit: 512M
# Timeouts # Timeouts
max_execution_time: "{{ php_timeout }}" max_execution_time: "{{ php_timeout }}"
max_input_time: "{{ php_timeout }}" max_input_time: "{{ php_timeout }}"
# Uploads # Uploads
# Note: "post_max_size" should be greater than "upload_max_filesize" # Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size: 72M post_max_size: 72M
upload_max_filesize: 64M upload_max_filesize: 64M
max_file_uploads: 20 max_file_uploads: 20
# Variables # Variables
variables_order: EGPCS variables_order: EGPCS
max_input_vars: 8000 max_input_vars: 8000
max_input_nesting_level: 64 max_input_nesting_level: 64
# Error reporting # Error reporting
error_reporting: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED error_reporting: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors: 'Off' xmlrpc_errors: 'Off'
report_memleaks: 'On' report_memleaks: 'On'
display_errors: 'Off' display_errors: 'Off'
display_startup_errors: 'Off' display_startup_errors: 'Off'
track_errors: 'On' track_errors: 'On'
log_errors: 'On' log_errors: 'On'
html_errors: 'Off' html_errors: 'Off'
# Xdebug settings # Xdebug2 settings
xdebug_default_enable: 'Off' xdebug2_default_enable: 'Off'
xdebug_profiler_enable: 'Off' xdebug2_profiler_enable: 'Off'
xdebug_remote_enable: 'Off' xdebug2_remote_enable: 'Off'
xdebug_remote_autostart: 'Off' xdebug2_remote_autostart: 'Off'
# Xdebug3 settings
xdebug3_mode: 'Off'
xdebug3_start_with_request: 'default'
xdebug3_client_port: '9000'
# ---- Inherits from base ---- # ---- Inherits from base ----
mods: mods:
@@ -52,20 +56,23 @@ php_settings_ini:
# ---- Inherits from base and overwrites certain values ---- # ---- Inherits from base and overwrites certain values ----
work: work:
# Error reporting # Error reporting
error_reporting: E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED error_reporting: E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors: 'Off' xmlrpc_errors: 'Off'
report_memleaks: 'On' report_memleaks: 'On'
display_errors: 'On' display_errors: 'On'
display_startup_errors: 'On' display_startup_errors: 'On'
track_errors: 'On' track_errors: 'On'
log_errors: 'On' log_errors: 'On'
html_errors: 'On' html_errors: 'On'
# Xdebug settings # Xdebug2 settings
xdebug_default_enable: 'Off' xdebug2_default_enable: 'Off'
xdebug_profiler_enable: 'Off' xdebug2_profiler_enable: 'Off'
xdebug_remote_enable: 'Off' xdebug2_remote_enable: 'Off'
xdebug_remote_autostart: 'Off' xdebug2_remote_autostart: 'Off'
# Xdebug3 settings
xdebug3_mode: 'Off'
xdebug3_start_with_request: 'default'
xdebug3_client_port: '9000'
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
# php-fpm.conf # php-fpm.conf

View File

@@ -168,7 +168,7 @@ extensions_available:
build_dep: [librabbitmq-dev] build_dep: [librabbitmq-dev]
run_dep: [librabbitmq4] run_dep: [librabbitmq4]
apcu: apcu:
disabled: [5.2, 8.0, 8.1] disabled: [5.2]
5.3: 5.3:
type: pecl type: pecl
version: 4.0.11 version: 4.0.11
@@ -187,7 +187,7 @@ extensions_available:
all: all:
type: builtin type: builtin
blackfire: blackfire:
disabled: [5.2, 5.3, 5.4, 5.5, 8.0, 8.1] disabled: [5.2, 5.3, 5.4, 5.5, 8.1]
all: all:
type: custom type: custom
command: | command: |
@@ -329,7 +329,7 @@ extensions_available:
iconv: iconv:
already_avail: "{{ php_all_versions }}" already_avail: "{{ php_all_versions }}"
igbinary: igbinary:
disabled: [8.0, 8.1] disabled: []
5.2: 5.2:
type: pecl type: pecl
version: 2.0.7 version: 2.0.7
@@ -376,7 +376,7 @@ extensions_available:
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \ && sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \ && sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
imap: imap:
disabled: [8.0, 8.1] # TODO: re-enable. currently fails with: configure: error: OpenSSL libraries not found. disabled: []
all: all:
type: builtin type: builtin
pre: ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ pre: ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/
@@ -441,21 +441,33 @@ extensions_available:
all: all:
type: builtin type: builtin
mcrypt: mcrypt:
disabled: [8.0, 8.1] disabled: []
5.2:
type: builtin
5.3:
type: builtin
5.4:
type: builtin
5.5:
type: builtin
5.6:
type: builtin
7.0:
type: builtin
7.1:
type: builtin
7.2: 7.2:
type: pecl type: pecl
version: 1.0.1 version: 1.0.1
7.3: 7.3:
type: pecl type: pecl
version: 1.0.2 version: 1.0.2
7.4:
type: pecl
all: all:
type: builtin type: pecl
run_dep: [libmcrypt4] run_dep: [libmcrypt4]
build_dep: [libmcrypt-dev] build_dep: [libmcrypt-dev]
memcache: memcache:
disabled: [8.0, 8.1] disabled: []
5.2: 5.2:
type: pecl type: pecl
version: 2.2.7 version: 2.2.7
@@ -471,6 +483,21 @@ extensions_available:
5.6: 5.6:
type: pecl type: pecl
version: 2.2.7 version: 2.2.7
7.0:
type: pecl
version: 4.0.5.2
7.1:
type: pecl
version: 4.0.5.2
7.2:
type: pecl
version: 4.0.5.2
7.3:
type: pecl
version: 4.0.5.2
7.4:
type: pecl
version: 4.0.5.2
all: all:
type: pecl type: pecl
build_dep: [zlib1g-dev] build_dep: [zlib1g-dev]
@@ -546,29 +573,11 @@ extensions_available:
5.6: 5.6:
type: pecl type: pecl
version: 1.7.5 version: 1.7.5
8.0:
type: git
git_url: https://github.com/mongodb/mongo-php-driver
command: |
git submodule update --init \
&& phpize \
&& ./configure --enable-mongodb \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
8.1:
type: git
git_url: https://github.com/mongodb/mongo-php-driver
command: |
git submodule update --init \
&& phpize \
&& ./configure --enable-mongodb \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
all: all:
type: pecl type: pecl
build_dep: [libssl-dev, libsasl2-dev] build_dep: [libssl-dev, libsasl2-dev]
msgpack: msgpack:
disabled: [8.0, 8.1] disabled: []
5.2: 5.2:
type: pecl type: pecl
version: 0.5.7 version: 0.5.7
@@ -603,7 +612,7 @@ extensions_available:
disabled: [5.2] disabled: [5.2]
already_avail: [5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1] already_avail: [5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1]
oauth: oauth:
disabled: [8.0, 8.1] disabled: []
5.2: 5.2:
type: pecl type: pecl
version: 1.2.3 version: 1.2.3
@@ -672,6 +681,7 @@ extensions_available:
pdo: pdo:
already_avail: "{{ php_all_versions }}" already_avail: "{{ php_all_versions }}"
pdo_dblib: pdo_dblib:
disabled: [8.1] # php: symbol lookup error: pdo_dblib.so: undefined symbol: dbinit
all: all:
type: builtin type: builtin
pre: ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ pre: ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/
@@ -755,7 +765,7 @@ extensions_available:
build_dep: [libpq-dev] build_dep: [libpq-dev]
run_dep: [libpq5] run_dep: [libpq5]
psr: psr:
disabled: [5.2, 5.3, 8.0, 8.1] # IMPORTANT: Required by PHP >= 7.2 by phalcon >=4.0 module disabled: [5.2, 5.3] # IMPORTANT: Required by PHP >= 7.2 by phalcon >=4.0 module
5.4: 5.4:
type: pecl type: pecl
version: 0.5.1 version: 0.5.1
@@ -841,38 +851,40 @@ extensions_available:
5.6: 5.6:
type: pecl type: pecl
version: 4.3.0 version: 4.3.0
8.0:
type: git
git_url: https://github.com/phpredis/phpredis
git_ref: $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1)
# TODO: This is a nasty work-around to fix current phpredis implementation for PHP 8.0
command: |
sed -i'' 's/, ZSTR_LEN(ra->algorithm)//g' redis_array_impl.c \
&& sed -i'' 's|.*sctx->cb\.no_separation.*||g' library.c \
&& sed -i'' 's|.*sctx->cb\.no_separation.*||g' redis_array_impl.c \
&& sed -i'' 's|.*sctx->cb\.no_separation.*||g' cluster_library.c \
&& sed -i'' 's|.*->no_separation.*||g' redis_array_impl.c \
&& phpize \
&& ./configure --enable-redis \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
8.1: 8.1:
type: git type: git
git_url: https://github.com/phpredis/phpredis git_url: https://github.com/phpredis/phpredis
git_ref: $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1) git_ref: $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1)
# TODO: This is a nasty work-around to fix current phpredis implementation for PHP 8.1
command: | command: |
sed -i'' 's/, ZSTR_LEN(ra->algorithm)//g' redis_array_impl.c \ REDIS_ARGS=""; \
&& sed -i'' 's|.*sctx->cb\.no_separation.*||g' library.c \ if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
&& sed -i'' 's|.*sctx->cb\.no_separation.*||g' redis_array_impl.c \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
&& sed -i'' 's|.*sctx->cb\.no_separation.*||g' cluster_library.c \ fi; \
&& sed -i'' 's|.*->no_separation.*||g' redis_array_impl.c \ if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
&& phpize \ REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
&& ./configure --enable-redis \ fi; \
phpize \
&& ./configure --enable-redis ${REDIS_ARGS} \
&& sed -i'' 's/ops->hash_init(ctx);/ops->hash_init(ctx, NULL);/g' library.c \
&& sed -i'' 's/ops->hash_init(ctx);/ops->hash_init(ctx, NULL);/g' redis_array_impl.c \
&& make -j$(getconf _NPROCESSORS_ONLN) \ && make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \ && make install \
all: all:
type: pecl type: git
git_url: https://github.com/phpredis/phpredis
git_ref: $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1)
command: |
REDIS_ARGS=""; \
if [ -d "/usr/local/include/php/ext/igbinary" ]; then \
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
fi; \
if [ -d "/usr/local/include/php/ext/msgpack" ]; then \
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
fi; \
phpize \
&& ./configure --enable-redis ${REDIS_ARGS} \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
reflection: reflection:
already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1] already_avail: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1]
rdkafka: rdkafka:
@@ -931,7 +943,7 @@ extensions_available:
type: builtin type: builtin
build_dep: [libsodium-dev] build_dep: [libsodium-dev]
solr: solr:
disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0, 8.0, 8.1] disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0]
all: all:
type: pecl type: pecl
build_dep: [libxml2-dev, libcurl4-openssl-dev] build_dep: [libxml2-dev, libcurl4-openssl-dev]
@@ -1156,11 +1168,6 @@ extensions_available:
7.1: 7.1:
type: pecl type: pecl
version: 2.9.8 version: 2.9.8
8.0:
type: git
git_url: https://github.com/xdebug/xdebug
git_ref: $(git for-each-ref --format='%(refname)' refs/tags | grep -E 'tags/[.0-9]+$' | sed 's|.*tags/||g' | sort -V | tail -1)
configure: --enable-xdebug
8.1: 8.1:
type: git type: git
git_url: https://github.com/xdebug/xdebug git_url: https://github.com/xdebug/xdebug
@@ -1169,7 +1176,7 @@ extensions_available:
all: all:
type: pecl type: pecl
xlswriter: xlswriter:
disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 8.0, 8.1] disabled: [5.2, 5.3, 5.4, 5.5, 5.6]
all: all:
type: pecl type: pecl
build_dep: [zlib1g-dev] build_dep: [zlib1g-dev]
@@ -1195,7 +1202,7 @@ extensions_available:
build_dep: [libxslt-dev] build_dep: [libxslt-dev]
run_dep: [libxslt1.1] run_dep: [libxslt1.1]
yaml: yaml:
disabled: [5.2, 8.0, 8.1] disabled: [5.2]
5.3: 5.3:
type: pecl type: pecl
version: 1.3.2 version: 1.3.2