REL-0.1 Initial Release

This commit is contained in:
cytopia
2018-02-23 08:53:30 +01:00
parent c594390bb3
commit f9782dbab6
47 changed files with 5952 additions and 31 deletions

74
.gitignore vendored Executable file
View File

@@ -0,0 +1,74 @@
######################################
# CUSTOM
######################################
build/ansible/*.retry
######################################
# GENERIC
######################################
###### std ######
.lock
*.log
###### patches/diffs ######
*.patch
*.diff
*.orig
*.rej
######################################
# Operating Systems
######################################
###### OSX ######
._*
.DS*
.Spotlight-V100
.Trashes
###### Windows ######
Thumbs.db
ehthumbs.db
Desktop.ini
$RECYCLE.BIN/
*.lnk
######################################
# Editors
######################################
###### Sublime ######
*.sublime-workspace
*.sublime-project
###### Eclipse ######
.classpath
.buildpath
.project
.settings/
###### Netbeans ######
nbproject/private/
###### Intellij IDE ######
.idea/
.idea_modules/
###### vim ######
*.swp
*.swo
*~
###### TextMate ######
.tm_properties
*.tmproj
###### BBEdit ######
*.bbprojectd
*.bbproject

View File

@@ -1,35 +1,293 @@
---
env:
matrix:
v=5.4
v=5.5
v=5.6
v=7.0
v=7.1
v=7.2
sudo: required
language: python
services:
- docker
env:
global:
- IMAGE: devilbox/php-fpm
# travis encrypt DOCKER_USERNAME=user
# travis encrypt DOCKER_PASSWORD=pass
# Must be regenerated when repository name/owner changes
# DOCKER_USERNAME
- secure: "Y7xt3qZW9Zwrsgdd/aCf8ZqA7I039506ZDf/u/WVzGwNHta5YJJ7XYy8XG7XugyqGGXRVpfBiaqmDH4xsPLXyHXdOt2G38GXZHZXIgJOiEJ6aUfpdUxyeu8XIXkD2MDMmc3Kb27Yub/OadxRMLWEflzRnSXXs3KJ8TsbPHh0yRWDMsmHYOYl16gDGUX1izLkEx4J+9iA3+JwIFZk8by/OUuIIQ93bSNORpwHT8A1j7Y1kh8kYkPZ6nRxWO8xrc2wI1Rbp0X+ivLnOotxDZo53UI/0KroeSckDpoWfoz+B7mP+M+5B6kGlI2pKDNQB/ErYvnya6PdtFSS9skbvepR4tBhUOZDDY7NMRg9m3w0b9T1no+g3A4LBGXy6+OZZoiYAGy9LvqMhFkINqbBhRBX+mZhtG0pNXunfcu5dk81Ni/XpXDiy9JU98jItwsRj4SeaPfSt0LUNNXMS/fEwZyTy6TihN1CM3krJpV30Ic5rN64FRnrRjUuNU4lJ/W36yUhM29gb13ahh+f7sDsYoCzMwDM9HFe0YLb3ar3mW1lb3FuUugU2f2EupgCPY60X2XrY9aSgCfbdiVsA84dbLtRfHTPG7UbEcJW5RH8HS+9qVZBK+AcPqon9jbOJRVh7q99YW+R8X/XeyYpz7amacVmRus80+toZ16bbU7D2Qgjdek="
# DOCKER_PASSWORD
- secure: "ZRrVOVOkSCS2UxEi1HNF1iKefK4sDT/sPRl1HxMQjLnRRaAMdG0aRnBwQf2YAM2qzhCfN85qt6zZtC4awc2mHiZ88JrAZxBjK6xj4BwOyLbDuzpBsKXnx8Nix+wyYYKSjsC3LOYrsUe+4rvkw3tVvVaX8G2llojwdksF34VDmmHBmzCG/Bsexk7UqC+qw0PZm7BtctQO+IL0btmMDijRDElxfR+AuPvf9JdkhYzw9TOO7Jqd53NssNVGyL+XSV0dfGn8PkZTp1e8D+28pLK4oGVog+Wk7Cq94hSGjk5AkWKvL5441rupG1AA8K3njeDNMKdov4o+dmnkAH7Jh8tjShMhNhoxHce3IzpczjhoE1EyYQcyPf1qdfhV35Xv096iWX5809pp1MZF2oE5eism8JaU9NpGClryVbKVKtup8ko9/tCqz01Czq5Vue40feMkGtdePulg59OhyyPLYldsObw8QlZydkrmgVZe6b+GyybeiHraTfDq4pvTgUrC4Cmm5J3IB5Ig1THEiYKHfRJ5hSSMDDODeBXc8Xh6mFssEVshNx/jbUQWuAVYQFw/GIquVHxr6btbevrWIoD+zmqcc0L98u9pYH8w7b+gMgVJNCC4QQz2NCGGWw9l9/TmLrKJgeXbG18n8D314le1zuna6/VfH9pXIlbNO4hgz5NLHJk="
matrix:
- PHP=5.5
- PHP=5.5
- PHP=5.6
- PHP=7.0
- PHP=7.1
- PHP=7.2
#stages:
# - generate
# - PHP 5.4
# - PHP 5.5
# - PHP 5.6
# - PHP 7.0
# - PHP 7.1
# - PHP 7.2
# TODO: No need for stages anymore, use simple build matrix and don't repease the code!!
install:
# Get newer docker version
- max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get update; then break; else i=$((i+1)); fi done
- max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce; then break; else i=$((i+1)); fi done
- docker version
stages:
- base
- mods
- prod
- work
before_script:
# Regenerate Dockerfiles and make sure nothing has changed (every stage)
- make generate
- git diff-index --quiet HEAD || { echo "Build Changes"; git diff; git status; false; }
jobs:
include:
- stage: base
# Build (multiple tries due to network outages)
- max=100; i=0; while [ $i -lt $max ]; do if make build-base-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
- max=100; i=0; while [ $i -lt $max ]; do if make build-mods-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
- max=100; i=0; while [ $i -lt $max ]; do if make build-prod-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
- max=100; i=0; while [ $i -lt $max ]; do if make build-work-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
script:
- echo "${v}-base"
- stage: mods
script:
- echo "${v}-mods"
- stage: prod
script:
- echo "${v}-prod"
- stage: work
script:
- echo "${v}-work"
# Test
- true
after_success:
# Push
- if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
docker login --username "${DOCKER_USERNAME}" --password "${DOCKER_PASSWORD}" &&
if [ "${TRAVIS_BRANCH}" == "master" ]; then
docker push "${IMAGE}:${PHP}-base";
docker push "${IMAGE}:${PHP}-mods";
docker push "${IMAGE}:${PHP}-prod";
docker push "${IMAGE}:${PHP}-work";
elif [[ ${TRAVIS_BRANCH} =~ ^(release-[.0-9]+)$ ]]; then
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}" &&
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}" &&
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}" &&
docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}" &&
docker push "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}";
docker push "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}";
docker push "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}";
docker push "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}";
elif [ -n "${TRAVIS_TAG}" ]; then
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_TAG}" &&
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}" &&
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}" &&
docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${TRAVIS_TAG}" &&
docker push "${IMAGE}:${PHP}-base-${TRAVIS_TAG}";
docker push "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}";
docker push "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}";
docker push "${IMAGE}:${PHP}-work-${TRAVIS_TAG}";
else
echo "Skipping push to dockerhub on normal branches";
fi
else
echo "Skipping push to dockerhub on PR";
fi
#
#
#
#
#
#
#
#
#
#jobs:
# include:
# ############################################################
# # TEST
# ############################################################
# - stage: generate
# env: All
# install: skip
# before_script: skip
# script:
# # Regenerate Dockerfiles and make sure nothing has changed (every stage)
# - pip install ansible
# - make generate
# - git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
# ############################################################
# # BUILD BASE IMAGE
# ############################################################
# - stage: PHP 5.4
# env: PHP=5.4
# before_script:
# # Build (multiple tries due to network outages)
# - max=100; i=0; while [ $i -lt $max ]; do if make build-base-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
# - max=100; i=0; while [ $i -lt $max ]; do if make build-mods-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
# - max=100; i=0; while [ $i -lt $max ]; do if make build-prod-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
# - max=100; i=0; while [ $i -lt $max ]; do if make build-work-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
# script:
# # Test
# - true
# after_success:
# # Push
# - if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
# docker login --username "${DOCKER_USERNAME}" --password "${DOCKER_PASSWORD}" &&
# if [ "${TRAVIS_BRANCH}" == "master" ]; then
# docker push "${IMAGE}:${PHP}-base";
# docker push "${IMAGE}:${PHP}-mods";
# docker push "${IMAGE}:${PHP}-prod";
# docker push "${IMAGE}:${PHP}-work";
# elif [[ ${TRAVIS_BRANCH} =~ ^(release-[.0-9]+)$ ]]; then
# docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}" &&
# docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}" &&
# docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}" &&
# docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}" &&
# docker push "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}";
# docker push "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}";
# docker push "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}";
# docker push "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}";
# elif [ -n "${TRAVIS_TAG}" ]; then
# docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_TAG}" &&
# docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}" &&
# docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}" &&
# docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${TRAVIS_TAG}" &&
# docker push "${IMAGE}:${PHP}-base-${TRAVIS_TAG}";
# docker push "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}";
# docker push "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}";
# docker push "${IMAGE}:${PHP}-work-${TRAVIS_TAG}";
# else
# echo "Skipping push to dockerhub on normal branches";
# fi
# else
# echo "Skipping push to dockerhub on PR";
# fi
# - stage: Build base image
# env: PHP=5.5 t=base
# before_script:
# # Build
# - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi; done
# script:
# # Test
# - result=1; false
# after_success:
# # Push
# - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD"
# - docker push "${IMAGE}:${PHP}-${t}";
#
# - stage: Build base image
# env: PHP=5.6 t=base
# script:
# - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi
# - if [ $i -gt 98 ]; then false; fi
# - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD"
# - docker push "${IMAGE}:${PHP}-${t}"
#
# - stage: Build base image
# env: PHP=7.0 t=base
# script:
# - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi
# - if [ $i -gt 98 ]; then false; fi
# - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD"
# - docker push "${IMAGE}:${PHP}-${t}"
#
# - stage: Build base image
# env: PHP=7.1 t=base
# script:
# - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi
# - if [ $i -gt 98 ]; then false; fi
# - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD"
# - docker push "${IMAGE}:${PHP}-${t}"
#
# - stage: Build base image
# env: PHP=7.2 t=base
# script:
# - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi
# - if [ $i -gt 98 ]; then false; fi
# - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD"
# - docker push "${IMAGE}:${PHP}-${t}"
# ############################################################
# # BUILD MODS IMAGE
# ############################################################
# - stage: Build mods image
# env: PHP-5.4
# script:
# - make build-mods-54
#
# - stage: Build mods image
# env: PHP-5.5
# script:
# - make build-mods-55
#
# - stage: Build mods image
# env: PHP-5.6
# script:
# - make build-mods-56
#
# - stage: Build mods image
# env: PHP-7.0
# script:
# - make build-mods-70
#
# - stage: Build mods image
# env: PHP-7.1
# script:
# - make build-mods-71
#
# - stage: Build mods image
# env: PHP-7.2
# script:
# - make build-mods-72
# ############################################################
# # BUILD PROD IMAGE
# ############################################################
# - stage: Build prod image
# env: PHP-5.4
# script:
# - make build-prod-5.4
#
# - stage: Build prod image
# env: PHP-5.5
# script:
# - make build-prod-5.5
#
# - stage: Build prod image
# env: PHP-5.6
# script:
# - make build-prod-5.6
#
# - stage: Build prod image
# env: PHP-7.0
# script:
# - make build-prod-7.0
#
# - stage: Build prod image
# env: PHP-7.1
# script:
# - make build-prod-7.1
#
# - stage: Build prod image
# env: PHP-7.2
# script:
# - make build-prod-7.2
# ############################################################
# # BUILD WORK IMAGE
# ############################################################
# - stage: Build work image
# env: PHP-5.4
# script:
# - make build-work-5.4
#
# - stage: Build work image
# env: PHP-5.5
# script:
# - make build-work-5.5
#
# - stage: Build work image
# env: PHP-5.6
# script:
# - make build-work-5.6
#
# - stage: Build work image
# env: PHP-7.0
# script:
# - make build-work-7.0
#
# - stage: Build work image
# env: PHP-7.1
# script:
# - make build-work-7.1
#
# - stage: Build work image
# env: PHP-7.2
# script:
# - make build-work-7.2

View File

@@ -0,0 +1,71 @@
# Auto-generated via Ansible
FROM php:5.4-fpm
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 5.4 Image" \
image="devilbox/php-fpm" \
tag="5.4-base" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV MY_USER="devilbox" \
MY_GROUP="devilbox" \
MY_UID="1000" \
MY_GID="1000"
###
### User/Group
###
RUN set -x \
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
###
### Upgrade
###
RUN set -x \
&& apt-get update \
&& apt-get upgrade -y \
&& rm -rf /var/lib/apt/lists/*
###
### Copy files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf
COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,71 @@
# Auto-generated via Ansible
FROM php:5.5-fpm
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 5.5 Image" \
image="devilbox/php-fpm" \
tag="5.5-base" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV MY_USER="devilbox" \
MY_GROUP="devilbox" \
MY_UID="1000" \
MY_GID="1000"
###
### User/Group
###
RUN set -x \
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
###
### Upgrade
###
RUN set -x \
&& apt-get update \
&& apt-get upgrade -y \
&& rm -rf /var/lib/apt/lists/*
###
### Copy files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf
COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,71 @@
# Auto-generated via Ansible
FROM php:5.6-fpm
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 5.6 Image" \
image="devilbox/php-fpm" \
tag="5.6-base" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV MY_USER="devilbox" \
MY_GROUP="devilbox" \
MY_UID="1000" \
MY_GID="1000"
###
### User/Group
###
RUN set -x \
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
###
### Upgrade
###
RUN set -x \
&& apt-get update \
&& apt-get upgrade -y \
&& rm -rf /var/lib/apt/lists/*
###
### Copy files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf
COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,71 @@
# Auto-generated via Ansible
FROM php:7.0-fpm
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 7.0 Image" \
image="devilbox/php-fpm" \
tag="7.0-base" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV MY_USER="devilbox" \
MY_GROUP="devilbox" \
MY_UID="1000" \
MY_GID="1000"
###
### User/Group
###
RUN set -x \
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
###
### Upgrade
###
RUN set -x \
&& apt-get update \
&& apt-get upgrade -y \
&& rm -rf /var/lib/apt/lists/*
###
### Copy files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf
COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,71 @@
# Auto-generated via Ansible
FROM php:7.1-fpm
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 7.1 Image" \
image="devilbox/php-fpm" \
tag="7.1-base" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV MY_USER="devilbox" \
MY_GROUP="devilbox" \
MY_UID="1000" \
MY_GID="1000"
###
### User/Group
###
RUN set -x \
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
###
### Upgrade
###
RUN set -x \
&& apt-get update \
&& apt-get upgrade -y \
&& rm -rf /var/lib/apt/lists/*
###
### Copy files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf
COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,71 @@
# Auto-generated via Ansible
FROM php:7.2-fpm
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 7.2 Image" \
image="devilbox/php-fpm" \
tag="7.2-base" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV MY_USER="devilbox" \
MY_GROUP="devilbox" \
MY_UID="1000" \
MY_GID="1000"
###
### User/Group
###
RUN set -x \
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
###
### Upgrade
###
RUN set -x \
&& apt-get update \
&& apt-get upgrade -y \
&& rm -rf /var/lib/apt/lists/*
###
### Copy files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf
COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,140 @@
#!/bin/sh
#
# Available global variables:
# + MY_USER
# + MY_GROUP
# + DEBUG_LEVEL
set -e
set -u
############################################################
# Functions
############################################################
###
### Log to stdout/stderr
###
log() {
log_lvl="${1}"
log_msg="${2}"
log_clr_ok="\033[0;32m"
log_clr_info="\033[0;34m"
log_clr_warn="\033[0;33m"
log_clr_err="\033[0;31m"
log_clr_rst="\033[0m"
if [ "${log_lvl}" = "ok" ]; then
if [ "${DEBUG_LEVEL}" -gt "0" ]; then
printf "${log_clr_ok}[OK] %s${log_clr_rst}\n" "${log_msg}"
fi
elif [ "${log_lvl}" = "info" ]; then
if [ "${DEBUG_LEVEL}" -gt "0" ]; then
printf "${log_clr_info}[INFO] %s${log_clr_rst}\n" "${log_msg}"
fi
elif [ "${log_lvl}" = "warn" ]; then
printf "${log_clr_warn}[WARN] %s${log_clr_rst}\n" "${log_msg}" 1>&2 # stdout -> stderr
elif [ "${log_lvl}" = "err" ]; then
printf "${log_clr_err}[ERR] %s${log_clr_rst}\n" "${log_msg}" 1>&2 # stdout -> stderr
else
printf "${log_clr_err}[???] %s${log_clr_rst}\n" "${log_msg}" 1>&2 # stdout -> stderr
fi
unset -v log_lvl
unset -v log_msg
unset -v log_clr_ok
unset -v log_clr_info
unset -v log_clr_warn
unset -v log_clr_err
unset -v log_clr_rst
}
###
### Wrapper for run_run command
###
run() {
run_cmd="${1}"
run_clr_red="\033[0;31m"
run_clr_green="\033[0;32m"
run_clr_reset="\033[0m"
if [ "${DEBUG_LEVEL}" -gt "1" ]; then
printf "${run_clr_red}%s \$ ${run_clr_green}${run_cmd}${run_clr_reset}\n" "$( whoami )"
fi
/bin/sh -c "LANG=C LC_ALL=C ${run_cmd}"
unset -v run_cmd
unset -v run_clr_red
unset -v run_clr_green
unset -v run_clr_reset
}
###
### Is argument an integer?
###
isint() {
echo "${1}" | grep -Eq '^([0-9]|[1-9][0-9]*)$'
}
###
### Is env variable set?
###
env_set() {
if set | grep "^${1}=" >/dev/null 2>&1; then
return 0
else
return 1
fi
}
###
### Get env variable by name
###
env_get() {
if ! env_set "${1}"; then
return 1
fi
env_get_value="$( set | grep "^${1}=" | awk -F '=' '{for (i=2; i<NF; i++) printf $i "="; print $NF}' )"
# Remove surrounding quotes
env_get_value="$( echo "${env_get_value}" | sed "s/^'//g" )"
env_get_value="$( echo "${env_get_value}" | sed 's/^"//g' )"
env_get_value="$( echo "${env_get_value}" | sed "s/'$//g" )"
env_get_value="$( echo "${env_get_value}" | sed 's/"$//g' )"
echo "${env_get_value}"
unset -v env_get_value
}
############################################################
# Sanity Checks
############################################################
if ! command -v grep >/dev/null 2>&1; then
log "err" "grep not found, but required."
exit 1
fi
if ! command -v sed >/dev/null 2>&1; then
log "err" "sed not found, but required."
exit 1
fi
if ! command -v awk >/dev/null 2>&1; then
log "err" "awk not found, but required."
exit 1
fi
if ! command -v getent >/dev/null 2>&1; then
log "err" "getent not found, but required."
exit 1
fi

View File

@@ -0,0 +1,22 @@
#!/bin/sh
set -e
set -u
############################################################
# Functions
############################################################
###
### Debug level
###
get_debug_level() {
if ! env_set "${1}"; then
# Return default specified value
echo "${2}"
else
# Return env value
env_get "${1}"
fi
}

View File

@@ -0,0 +1,104 @@
#!/bin/sh
#
# Available global variables:
# + MY_USER
# + MY_GROUP
# + DEBUG_LEVEL
set -e
set -u
############################################################
# Functions
############################################################
###
### Change UID
###
set_uid() {
uid_varname="${1}"
if ! env_set "${uid_varname}"; then
log "info" "\$${uid_varname} not set. Keeping default uid for '${MY_USER}'."
else
uid_env_uid="$( env_get "${uid_varname}" )"
if ! isint "${uid_env_uid}"; then
log "err" "\$${uid_varname} is not an integer: '${uid_env_uid}'"
exit 1
else
if uid_getent_row="$( getent passwd "${uid_env_uid}" )"; then
uid_getent_name="$( echo "${uid_getent_row}" | awk -F ':' '{print $1}' )"
if [ "${uid_getent_name}" != "${MY_USER}" ]; then
log "warn" "User with ${uid_env_uid} already exists: ${uid_getent_name}"
log "info" "Changing UID of ${uid_getent_name} to 9999"
run "usermod -u 9999 ${uid_getent_name}"
fi
fi
log "info" "Changing user '${MY_USER}' uid to: ${uid_env_uid}"
run "usermod -u ${uid_env_uid} ${MY_USER}"
fi
fi
# Fix homedir permissions
run "chown -R ${MY_USER} /home/${MY_USER}"
unset -v uid_varname
unset -v uid_env_uid
unset -v uid_getent_row
unset -v uid_getent_name
}
###
### Change GID
###
set_gid() {
gid_varname="${1}"
if ! env_set "${gid_varname}"; then
log "info" "\$${gid_varname} not set. Keeping default gid for '${MY_GROUP}'."
else
# Retrieve the value from env
gid_env_gid="$( env_get "${gid_varname}" )"
if ! isint "${gid_env_gid}"; then
log "err" "\$${gid_varname} is not an integer: '${gid_env_gid}'"
exit 1
else
if gid_getent_row="$( getent group "${gid_env_gid}" )"; then
gid_getent_name="$( echo "${gid_getent_row}" | awk -F ':' '{print $1}' )"
if [ "${gid_getent_name}" != "${MY_GROUP}" ]; then
log "warn" "Group with ${gid_env_gid} already exists: ${gid_getent_name}"
log "info" "Changing GID of ${gid_getent_name} to 9999"
run "groupmod -g 9999 ${gid_getent_name}"
fi
fi
log "info" "Changing group '${MY_GROUP}' gid to: ${gid_env_gid}"
run "groupmod -g ${gid_env_gid} ${MY_GROUP}"
fi
fi
# Fix homedir permissions
run "chown -R :${MY_GROUP} /home/${MY_USER}"
unset -v gid_varname
unset -v gid_env_gid
unset -v gid_getent_row
unset -v gid_getent_name
}
############################################################
# Sanity Checks
############################################################
if ! command -v usermod >/dev/null 2>&1; then
log "err" "usermod not found, but required."
exit 1
fi
if ! command -v groupmod >/dev/null 2>&1; then
log "err" "groupmod not found, but required."
exit 1
fi

View File

@@ -0,0 +1,51 @@
#!/bin/sh
#
# Available global variables:
# + MY_USER
# + MY_GROUP
# + DEBUG_LEVEL
###
### Settings
###
set -e
set -u
CONFIG_DIR="/docker-entrypoint.d"
###
### Source libs
###
init="$( find "${CONFIG_DIR}" -name '*.sh' -type f | sort -u )"
for f in ${init}; do
# shellcheck disable=SC1090
. "${f}"
done
###
### Set Debug level
###
DEBUG_LEVEL="$( get_debug_level "DEBUG_ENTRYPOINT" "0" )"
log "info" "Debug level: ${DEBUG_LEVEL}"
#############################################################
## Entry Point
#############################################################
###
### Change uid/gid
###
set_uid "NEW_UID"
set_gid "NEW_GID"
###
### Startup
###
log "info" "Starting $( php-fpm -v 2>&1 | head -1 )"
exec /usr/local/sbin/php-fpm

View File

@@ -0,0 +1,5 @@
[global]
error_log = /proc/self/fd/2
log_level = notice
daemonize = no
include = /usr/local/etc/php-fpm.d/*.conf

View File

@@ -0,0 +1,24 @@
[www]
; User and Group
user = devilbox
group = devilbox
; if we send this to /proc/self/fd/1, it never appears
access.log = /proc/self/fd/2
; Ensure to listen here
listen = 9000
; Keep env variables set by docker
clear_env = no
; Ensure worker stdout and stderr are sent to the main error log.
catch_workers_output = yes
; Pool config
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

View File

@@ -0,0 +1,388 @@
# Auto-generated via Ansible
FROM devilbox/php-fpm:5.4-base
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 5.4 Image" \
image="devilbox/php-fpm" \
tag="5.4-mods" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV BUILD_DEPS \
libicu-dev \
libtidy-dev \
libssl-dev \
libpng-dev \
libjpeg-dev \
libxpm-dev \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \
librecode-dev \
libcurl4-openssl-dev \
libssl-dev \
libpq-dev \
zlib1g-dev \
libxml2-dev \
libssl-dev \
libsnmp-dev \
snmp \
libpq-dev \
libldap2-dev \
libsasl2-dev \
libgmp-dev \
libxml2-dev \
libfbclient2 \
libib-util \
firebird-dev \
libxml2-dev \
libpspell-dev \
libsqlite3-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libbz2-dev \
libxml2-dev \
libxml2-dev \
libxml2-dev \
freetds-dev \
libxml2-dev \
libmm-dev \
libxml2-dev \
libmcrypt-dev \
libenchant-dev \
libxslt-dev \
librabbitmq-dev \
libnghttp2-dev \
libssl-dev \
libnghttp2-5 \
libssl-dev \
zlib1g-dev \
libmagickwand-dev \
zlib1g-dev \
libmemcached-dev \
git \
ca-certificates
ENV RUN_DEPS \
libicu52 \
libtidy-0.99-0 \
libpng12-0 \
libjpeg62-turbo \
libxpm4 \
libvpx1 \
libfreetype6 \
librecode0 \
libpq5 \
snmp \
libpq5 \
libfbclient2 \
libaspell15 \
libc-client2007e \
libsybdb5 \
libmcrypt4 \
libenchant1c2a \
libxslt1.1 \
librabbitmq1 \
libnghttp2-5 \
libmagickwand-6.q16-2 \
libmemcachedutil2 \
ca-certificates
###
### Install
###
RUN set -x \
&& apt-get update \
&& apt-get install --no-install-recommends --no-install-suggests -y \
${BUILD_DEPS} \
\
\
&& /usr/local/bin/docker-php-ext-install pdo_mysql \
&& /usr/local/bin/docker-php-ext-install tokenizer \
&& /usr/local/bin/docker-php-ext-install dba \
&& /usr/local/bin/docker-php-ext-install intl \
&& /usr/local/bin/docker-php-ext-install shmop \
&& /usr/local/bin/docker-php-ext-install tidy \
&& /usr/local/bin/docker-php-ext-install bcmath \
&& /usr/local/bin/docker-php-ext-install phar \
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
&& /usr/local/bin/docker-php-ext-install gd \
&& /usr/local/bin/docker-php-ext-install recode \
&& /usr/local/bin/docker-php-ext-install mysql \
&& /usr/local/bin/docker-php-ext-install pcntl \
&& /usr/local/bin/docker-php-ext-install curl \
&& /usr/local/bin/docker-php-ext-install sockets \
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install ftp \
&& /usr/local/bin/docker-php-ext-install iconv \
&& /usr/local/bin/docker-php-ext-install pdo_pgsql \
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
&& /usr/local/bin/docker-php-ext-install zip \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install xmlwriter \
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install snmp \
&& /usr/local/bin/docker-php-ext-install gettext \
&& /usr/local/bin/docker-php-ext-install pgsql \
&& /usr/local/bin/docker-php-ext-install json \
&& /usr/local/bin/docker-php-ext-install mbstring \
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install ldap \
&& /usr/local/bin/docker-php-ext-install sysvmsg \
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
&& /usr/local/bin/docker-php-ext-install gmp \
&& /usr/local/bin/docker-php-ext-install sysvshm \
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install soap \
&& /usr/local/bin/docker-php-ext-install pdo_firebird \
&& /usr/local/bin/docker-php-ext-install hash \
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install xmlrpc \
&& /usr/local/bin/docker-php-ext-install pdo \
&& /usr/local/bin/docker-php-ext-install ctype \
&& /usr/local/bin/docker-php-ext-install fileinfo \
&& /usr/local/bin/docker-php-ext-install sysvsem \
&& /usr/local/bin/docker-php-ext-install pspell \
&& /usr/local/bin/docker-php-ext-install mysqli \
&& /usr/local/bin/docker-php-ext-install pdo_sqlite \
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install imap \
&& /usr/local/bin/docker-php-ext-install bz2 \
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install wddx \
&& /usr/local/bin/docker-php-ext-install exif \
&& /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install xml \
&& /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install dom \
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install pdo_dblib \
&& /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install xmlreader \
&& /usr/local/bin/docker-php-ext-configure session --with-mm \
&& /usr/local/bin/docker-php-ext-install session \
&& /usr/local/bin/docker-php-ext-install posix \
&& /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install simplexml \
&& /usr/local/bin/docker-php-ext-install calendar \
&& /usr/local/bin/docker-php-ext-install mcrypt \
&& /usr/local/bin/docker-php-ext-install enchant \
&& /usr/local/bin/docker-php-ext-install xsl \
\
\
&& pecl install xdebug-2.4.1 \
&& docker-php-ext-enable xdebug \
&& echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \
&& pecl install swoole-1.9.23 \
&& docker-php-ext-enable swoole \
&& pecl install mongodb-1.2.11 \
&& docker-php-ext-enable mongodb \
&& pecl install memcache \
&& docker-php-ext-enable memcache \
&& pecl install redis \
&& docker-php-ext-enable redis \
&& pecl install uploadprogress \
&& docker-php-ext-enable uploadprogress \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& pecl install msgpack-0.5.7 \
&& docker-php-ext-enable msgpack \
&& pecl install memcached-2.2.0 \
&& docker-php-ext-enable memcached \
&& pecl install igbinary \
&& docker-php-ext-enable igbinary \
&& pecl install apcu-4.0.11 \
&& docker-php-ext-enable apcu \
\
\
&& git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \
&& cd /tmp/phalcon \
&& git checkout phalcon-v2.0.13 \
&& cd /tmp/phalcon && cd build && ./install \
&& docker-php-ext-enable phalcon \
&& cd / && rm -rf /tmp/phalcon \
\
\
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \
${BUILD_DEPS} \
\
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \
&& update-ca-certificates \
&& find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \
&& php -m | grep -oiE '^pdo_mysql$' \
&& php-fpm -m | grep -oiE '^pdo_mysql$' \
&& php -m | grep -oiE '^tokenizer$' \
&& php-fpm -m | grep -oiE '^tokenizer$' \
&& php -m | grep -oiE '^dba$' \
&& php-fpm -m | grep -oiE '^dba$' \
&& php -m | grep -oiE '^intl$' \
&& php-fpm -m | grep -oiE '^intl$' \
&& php -m | grep -oiE '^shmop$' \
&& php-fpm -m | grep -oiE '^shmop$' \
&& php -m | grep -oiE '^tidy$' \
&& php-fpm -m | grep -oiE '^tidy$' \
&& php -m | grep -oiE '^bcmath$' \
&& php-fpm -m | grep -oiE '^bcmath$' \
&& php -m | grep -oiE '^phar$' \
&& php-fpm -m | grep -oiE '^phar$' \
&& php -m | grep -oiE '^gd$' \
&& php-fpm -m | grep -oiE '^gd$' \
&& php -m | grep -oiE '^recode$' \
&& php-fpm -m | grep -oiE '^recode$' \
&& php -m | grep -oiE '^mysql$' \
&& php-fpm -m | grep -oiE '^mysql$' \
&& php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^curl$' \
&& php-fpm -m | grep -oiE '^curl$' \
&& php -m | grep -oiE '^sockets$' \
&& php-fpm -m | grep -oiE '^sockets$' \
&& php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^iconv$' \
&& php-fpm -m | grep -oiE '^iconv$' \
&& php -m | grep -oiE '^pdo_pgsql$' \
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
&& php -m | grep -oiE '^zip$' \
&& php-fpm -m | grep -oiE '^zip$' \
&& php -m | grep -oiE '^xmlwriter$' \
&& php-fpm -m | grep -oiE '^xmlwriter$' \
&& php -m | grep -oiE '^snmp$' \
&& php-fpm -m | grep -oiE '^snmp$' \
&& php -m | grep -oiE '^gettext$' \
&& php-fpm -m | grep -oiE '^gettext$' \
&& php -m | grep -oiE '^pgsql$' \
&& php-fpm -m | grep -oiE '^pgsql$' \
&& php -m | grep -oiE '^json$' \
&& php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^sysvmsg$' \
&& php-fpm -m | grep -oiE '^sysvmsg$' \
&& php -m | grep -oiE '^gmp$' \
&& php-fpm -m | grep -oiE '^gmp$' \
&& php -m | grep -oiE '^sysvshm$' \
&& php-fpm -m | grep -oiE '^sysvshm$' \
&& php -m | grep -oiE '^soap$' \
&& php-fpm -m | grep -oiE '^soap$' \
&& php -m | grep -oiE '^pdo_firebird$' \
&& php-fpm -m | grep -oiE '^pdo_firebird$' \
&& php -m | grep -oiE '^hash$' \
&& php-fpm -m | grep -oiE '^hash$' \
&& php -m | grep -oiE '^xmlrpc$' \
&& php-fpm -m | grep -oiE '^xmlrpc$' \
&& php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^ctype$' \
&& php-fpm -m | grep -oiE '^ctype$' \
&& php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^sysvsem$' \
&& php-fpm -m | grep -oiE '^sysvsem$' \
&& php -m | grep -oiE '^pspell$' \
&& php-fpm -m | grep -oiE '^pspell$' \
&& php -m | grep -oiE '^mysqli$' \
&& php-fpm -m | grep -oiE '^mysqli$' \
&& php -m | grep -oiE '^pdo_sqlite$' \
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
&& php -m | grep -oiE '^imap$' \
&& php-fpm -m | grep -oiE '^imap$' \
&& php -m | grep -oiE '^bz2$' \
&& php-fpm -m | grep -oiE '^bz2$' \
&& php -m | grep -oiE '^wddx$' \
&& php-fpm -m | grep -oiE '^wddx$' \
&& php -m | grep -oiE '^exif$' \
&& php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^xml$' \
&& php-fpm -m | grep -oiE '^xml$' \
&& php -m | grep -oiE '^dom$' \
&& php-fpm -m | grep -oiE '^dom$' \
&& php -m | grep -oiE '^pdo_dblib$' \
&& php-fpm -m | grep -oiE '^pdo_dblib$' \
&& php -m | grep -oiE '^xmlreader$' \
&& php-fpm -m | grep -oiE '^xmlreader$' \
&& php -m | grep -oiE '^session$' \
&& php-fpm -m | grep -oiE '^session$' \
&& php -m | grep -oiE '^posix$' \
&& php-fpm -m | grep -oiE '^posix$' \
&& php -m | grep -oiE '^simplexml$' \
&& php-fpm -m | grep -oiE '^simplexml$' \
&& php -m | grep -oiE '^calendar$' \
&& php-fpm -m | grep -oiE '^calendar$' \
&& php -m | grep -oiE '^mcrypt$' \
&& php-fpm -m | grep -oiE '^mcrypt$' \
&& php -m | grep -oiE '^enchant$' \
&& php-fpm -m | grep -oiE '^enchant$' \
&& php -m | grep -oiE '^xsl$' \
&& php-fpm -m | grep -oiE '^xsl$' \
&& php -m | grep -oiE '^xdebug$' \
&& php-fpm -m | grep -oiE '^xdebug$' \
&& php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^swoole$' \
&& php-fpm -m | grep -oiE '^swoole$' \
&& php -m | grep -oiE '^mongodb$' \
&& php-fpm -m | grep -oiE '^mongodb$' \
&& php -m | grep -oiE '^memcache$' \
&& php-fpm -m | grep -oiE '^memcache$' \
&& php -m | grep -oiE '^redis$' \
&& php-fpm -m | grep -oiE '^redis$' \
&& php -m | grep -oiE '^uploadprogress$' \
&& php-fpm -m | grep -oiE '^uploadprogress$' \
&& php -m | grep -oiE '^imagick$' \
&& php-fpm -m | grep -oiE '^imagick$' \
&& php -m | grep -oiE '^msgpack$' \
&& php-fpm -m | grep -oiE '^msgpack$' \
&& php -m | grep -oiE '^memcached$' \
&& php-fpm -m | grep -oiE '^memcached$' \
&& php -m | grep -oiE '^igbinary$' \
&& php-fpm -m | grep -oiE '^igbinary$' \
&& php -m | grep -oiE '^apcu$' \
&& php-fpm -m | grep -oiE '^apcu$' \
&& php -m | grep -oiE '^phalcon$' \
&& php-fpm -m | grep -oiE '^phalcon$' \
&& true
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,402 @@
# Auto-generated via Ansible
FROM devilbox/php-fpm:5.5-base
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 5.5 Image" \
image="devilbox/php-fpm" \
tag="5.5-mods" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV BUILD_DEPS \
libicu-dev \
libtidy-dev \
libssl-dev \
libpng-dev \
libjpeg-dev \
libxpm-dev \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \
librecode-dev \
libcurl4-openssl-dev \
libssl-dev \
libpq-dev \
zlib1g-dev \
libxml2-dev \
libssl-dev \
libsnmp-dev \
snmp \
libpq-dev \
libfbclient2 \
libib-util \
firebird-dev \
libldap2-dev \
libsasl2-dev \
libgmp-dev \
libxml2-dev \
libfbclient2 \
libib-util \
firebird-dev \
libxml2-dev \
libpspell-dev \
libedit-dev \
libreadline-dev \
libsqlite3-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libbz2-dev \
libxml2-dev \
libxml2-dev \
libxml2-dev \
freetds-dev \
libxml2-dev \
libmm-dev \
libxml2-dev \
libmcrypt-dev \
libenchant-dev \
libxslt-dev \
librabbitmq-dev \
libnghttp2-dev \
libssl-dev \
libnghttp2-5 \
zlib1g-dev \
libmagickwand-dev \
zlib1g-dev \
libmemcached-dev \
git \
ca-certificates
ENV RUN_DEPS \
libicu52 \
libtidy-0.99-0 \
libpng12-0 \
libjpeg62-turbo \
libxpm4 \
libvpx1 \
libfreetype6 \
librecode0 \
libpq5 \
snmp \
libpq5 \
libfbclient2 \
libfbclient2 \
libaspell15 \
libc-client2007e \
libsybdb5 \
libmcrypt4 \
libenchant1c2a \
libxslt1.1 \
librabbitmq1 \
libnghttp2-5 \
libmagickwand-6.q16-2 \
libmemcachedutil2 \
ca-certificates
###
### Install
###
RUN set -x \
&& apt-get update \
&& apt-get install --no-install-recommends --no-install-suggests -y \
${BUILD_DEPS} \
\
\
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
&& /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \
&& /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
&& /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \
&& /usr/local/bin/docker-php-ext-configure session --with-mm \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \
&& /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
\
\
&& pecl install xdebug-2.5.5 \
&& docker-php-ext-enable xdebug \
&& echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \
&& pecl install swoole-1.9.23 \
&& docker-php-ext-enable swoole \
&& pecl install mongodb \
&& docker-php-ext-enable mongodb \
&& pecl install memcache \
&& docker-php-ext-enable memcache \
&& pecl install redis \
&& docker-php-ext-enable redis \
&& pecl install uploadprogress \
&& docker-php-ext-enable uploadprogress \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& pecl install msgpack-0.5.7 \
&& docker-php-ext-enable msgpack \
&& pecl install memcached-2.2.0 \
&& docker-php-ext-enable memcached \
&& pecl install igbinary \
&& docker-php-ext-enable igbinary \
&& pecl install apcu-4.0.11 \
&& docker-php-ext-enable apcu \
\
\
&& git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \
&& cd /tmp/phalcon \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \
&& cd /tmp/phalcon && cd build && ./install \
&& docker-php-ext-enable phalcon \
&& cd / && rm -rf /tmp/phalcon \
\
\
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \
${BUILD_DEPS} \
\
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \
&& update-ca-certificates \
&& find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \
&& php -m | grep -oiE '^pdo_mysql$' \
&& php-fpm -m | grep -oiE '^pdo_mysql$' \
&& php -m | grep -oiE '^tokenizer$' \
&& php-fpm -m | grep -oiE '^tokenizer$' \
&& php -m | grep -oiE '^dba$' \
&& php-fpm -m | grep -oiE '^dba$' \
&& php -m | grep -oiE '^intl$' \
&& php-fpm -m | grep -oiE '^intl$' \
&& php -m | grep -oiE '^shmop$' \
&& php-fpm -m | grep -oiE '^shmop$' \
&& php -m | grep -oiE '^tidy$' \
&& php-fpm -m | grep -oiE '^tidy$' \
&& php -m | grep -oiE '^bcmath$' \
&& php-fpm -m | grep -oiE '^bcmath$' \
&& php -m | grep -oiE '^phar$' \
&& php-fpm -m | grep -oiE '^phar$' \
&& php -m | grep -oiE '^gd$' \
&& php-fpm -m | grep -oiE '^gd$' \
&& php -m | grep -oiE '^recode$' \
&& php-fpm -m | grep -oiE '^recode$' \
&& php -m | grep -oiE '^mysql$' \
&& php-fpm -m | grep -oiE '^mysql$' \
&& php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
&& php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^curl$' \
&& php-fpm -m | grep -oiE '^curl$' \
&& php -m | grep -oiE '^sockets$' \
&& php-fpm -m | grep -oiE '^sockets$' \
&& php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^iconv$' \
&& php-fpm -m | grep -oiE '^iconv$' \
&& php -m | grep -oiE '^pdo_pgsql$' \
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
&& php -m | grep -oiE '^zip$' \
&& php-fpm -m | grep -oiE '^zip$' \
&& php -m | grep -oiE '^xmlwriter$' \
&& php-fpm -m | grep -oiE '^xmlwriter$' \
&& php -m | grep -oiE '^snmp$' \
&& php-fpm -m | grep -oiE '^snmp$' \
&& php -m | grep -oiE '^gettext$' \
&& php-fpm -m | grep -oiE '^gettext$' \
&& php -m | grep -oiE '^pgsql$' \
&& php-fpm -m | grep -oiE '^pgsql$' \
&& php -m | grep -oiE '^json$' \
&& php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^interbase$' \
&& php-fpm -m | grep -oiE '^interbase$' \
&& php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^sysvmsg$' \
&& php-fpm -m | grep -oiE '^sysvmsg$' \
&& php -m | grep -oiE '^gmp$' \
&& php-fpm -m | grep -oiE '^gmp$' \
&& php -m | grep -oiE '^sysvshm$' \
&& php-fpm -m | grep -oiE '^sysvshm$' \
&& php -m | grep -oiE '^soap$' \
&& php-fpm -m | grep -oiE '^soap$' \
&& php -m | grep -oiE '^pdo_firebird$' \
&& php-fpm -m | grep -oiE '^pdo_firebird$' \
&& php -m | grep -oiE '^hash$' \
&& php-fpm -m | grep -oiE '^hash$' \
&& php -m | grep -oiE '^xmlrpc$' \
&& php-fpm -m | grep -oiE '^xmlrpc$' \
&& php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^ctype$' \
&& php-fpm -m | grep -oiE '^ctype$' \
&& php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^sysvsem$' \
&& php-fpm -m | grep -oiE '^sysvsem$' \
&& php -m | grep -oiE '^pspell$' \
&& php-fpm -m | grep -oiE '^pspell$' \
&& php -m | grep -oiE '^mysqli$' \
&& php-fpm -m | grep -oiE '^mysqli$' \
&& php -m | grep -oiE '^readline$' \
&& php-fpm -m | grep -oiE '^readline$' \
&& php -m | grep -oiE '^pdo_sqlite$' \
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
&& php -m | grep -oiE '^imap$' \
&& php-fpm -m | grep -oiE '^imap$' \
&& php -m | grep -oiE '^bz2$' \
&& php-fpm -m | grep -oiE '^bz2$' \
&& php -m | grep -oiE '^wddx$' \
&& php-fpm -m | grep -oiE '^wddx$' \
&& php -m | grep -oiE '^exif$' \
&& php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^xml$' \
&& php-fpm -m | grep -oiE '^xml$' \
&& php -m | grep -oiE '^dom$' \
&& php-fpm -m | grep -oiE '^dom$' \
&& php -m | grep -oiE '^pdo_dblib$' \
&& php-fpm -m | grep -oiE '^pdo_dblib$' \
&& php -m | grep -oiE '^xmlreader$' \
&& php-fpm -m | grep -oiE '^xmlreader$' \
&& php -m | grep -oiE '^session$' \
&& php-fpm -m | grep -oiE '^session$' \
&& php -m | grep -oiE '^posix$' \
&& php-fpm -m | grep -oiE '^posix$' \
&& php -m | grep -oiE '^simplexml$' \
&& php-fpm -m | grep -oiE '^simplexml$' \
&& php -m | grep -oiE '^calendar$' \
&& php-fpm -m | grep -oiE '^calendar$' \
&& php -m | grep -oiE '^mcrypt$' \
&& php-fpm -m | grep -oiE '^mcrypt$' \
&& php -m | grep -oiE '^enchant$' \
&& php-fpm -m | grep -oiE '^enchant$' \
&& php -m | grep -oiE '^xsl$' \
&& php-fpm -m | grep -oiE '^xsl$' \
&& php -m | grep -oiE '^xdebug$' \
&& php-fpm -m | grep -oiE '^xdebug$' \
&& php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^swoole$' \
&& php-fpm -m | grep -oiE '^swoole$' \
&& php -m | grep -oiE '^mongodb$' \
&& php-fpm -m | grep -oiE '^mongodb$' \
&& php -m | grep -oiE '^memcache$' \
&& php-fpm -m | grep -oiE '^memcache$' \
&& php -m | grep -oiE '^redis$' \
&& php-fpm -m | grep -oiE '^redis$' \
&& php -m | grep -oiE '^uploadprogress$' \
&& php-fpm -m | grep -oiE '^uploadprogress$' \
&& php -m | grep -oiE '^imagick$' \
&& php-fpm -m | grep -oiE '^imagick$' \
&& php -m | grep -oiE '^msgpack$' \
&& php-fpm -m | grep -oiE '^msgpack$' \
&& php -m | grep -oiE '^memcached$' \
&& php-fpm -m | grep -oiE '^memcached$' \
&& php -m | grep -oiE '^igbinary$' \
&& php-fpm -m | grep -oiE '^igbinary$' \
&& php -m | grep -oiE '^apcu$' \
&& php-fpm -m | grep -oiE '^apcu$' \
&& php -m | grep -oiE '^phalcon$' \
&& php-fpm -m | grep -oiE '^phalcon$' \
&& true
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,404 @@
# Auto-generated via Ansible
FROM devilbox/php-fpm:5.6-base
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 5.6 Image" \
image="devilbox/php-fpm" \
tag="5.6-mods" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV BUILD_DEPS \
libicu-dev \
libtidy-dev \
libssl-dev \
libpng-dev \
libjpeg-dev \
libxpm-dev \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \
librecode-dev \
libcurl4-openssl-dev \
libssl-dev \
libpq-dev \
zlib1g-dev \
libzip-dev \
libxml2-dev \
libssl-dev \
libsnmp-dev \
snmp \
libpq-dev \
libfbclient2 \
libib-util \
firebird-dev \
libldap2-dev \
libsasl2-dev \
libgmp-dev \
libxml2-dev \
libfbclient2 \
libib-util \
firebird-dev \
libxml2-dev \
libpspell-dev \
libedit-dev \
libreadline-dev \
libsqlite3-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libbz2-dev \
libxml2-dev \
libxml2-dev \
libxml2-dev \
freetds-dev \
libxml2-dev \
libmm-dev \
libxml2-dev \
libmcrypt-dev \
libenchant-dev \
libxslt-dev \
librabbitmq-dev \
libnghttp2-dev \
libssl-dev \
libnghttp2-5 \
zlib1g-dev \
libmagickwand-dev \
zlib1g-dev \
libmemcached-dev \
git \
ca-certificates
ENV RUN_DEPS \
libicu52 \
libtidy-0.99-0 \
libpng12-0 \
libjpeg62-turbo \
libxpm4 \
libvpx1 \
libfreetype6 \
librecode0 \
libpq5 \
libzip2 \
snmp \
libpq5 \
libfbclient2 \
libfbclient2 \
libaspell15 \
libc-client2007e \
libsybdb5 \
libmcrypt4 \
libenchant1c2a \
libxslt1.1 \
librabbitmq1 \
libnghttp2-5 \
libmagickwand-6.q16-2 \
libmemcachedutil2 \
ca-certificates
###
### Install
###
RUN set -x \
&& apt-get update \
&& apt-get install --no-install-recommends --no-install-suggests -y \
${BUILD_DEPS} \
\
\
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
&& /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \
&& /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
&& /usr/local/bin/docker-php-ext-configure xmlreader --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlreader \
&& /usr/local/bin/docker-php-ext-configure session --with-mm \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \
&& /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
\
\
&& pecl install xdebug-2.5.5 \
&& docker-php-ext-enable xdebug \
&& echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \
&& pecl install swoole-1.9.23 \
&& docker-php-ext-enable swoole \
&& pecl install mongodb \
&& docker-php-ext-enable mongodb \
&& pecl install memcache \
&& docker-php-ext-enable memcache \
&& pecl install redis \
&& docker-php-ext-enable redis \
&& pecl install uploadprogress \
&& docker-php-ext-enable uploadprogress \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& pecl install msgpack-0.5.7 \
&& docker-php-ext-enable msgpack \
&& pecl install memcached-2.2.0 \
&& docker-php-ext-enable memcached \
&& pecl install igbinary \
&& docker-php-ext-enable igbinary \
&& pecl install apcu-4.0.11 \
&& docker-php-ext-enable apcu \
\
\
&& git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \
&& cd /tmp/phalcon \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \
&& cd /tmp/phalcon && cd build && ./install \
&& docker-php-ext-enable phalcon \
&& cd / && rm -rf /tmp/phalcon \
\
\
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \
${BUILD_DEPS} \
\
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \
&& update-ca-certificates \
&& find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \
&& php -m | grep -oiE '^pdo_mysql$' \
&& php-fpm -m | grep -oiE '^pdo_mysql$' \
&& php -m | grep -oiE '^tokenizer$' \
&& php-fpm -m | grep -oiE '^tokenizer$' \
&& php -m | grep -oiE '^dba$' \
&& php-fpm -m | grep -oiE '^dba$' \
&& php -m | grep -oiE '^intl$' \
&& php-fpm -m | grep -oiE '^intl$' \
&& php -m | grep -oiE '^shmop$' \
&& php-fpm -m | grep -oiE '^shmop$' \
&& php -m | grep -oiE '^tidy$' \
&& php-fpm -m | grep -oiE '^tidy$' \
&& php -m | grep -oiE '^bcmath$' \
&& php-fpm -m | grep -oiE '^bcmath$' \
&& php -m | grep -oiE '^phar$' \
&& php-fpm -m | grep -oiE '^phar$' \
&& php -m | grep -oiE '^gd$' \
&& php-fpm -m | grep -oiE '^gd$' \
&& php -m | grep -oiE '^recode$' \
&& php-fpm -m | grep -oiE '^recode$' \
&& php -m | grep -oiE '^mysql$' \
&& php-fpm -m | grep -oiE '^mysql$' \
&& php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
&& php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^curl$' \
&& php-fpm -m | grep -oiE '^curl$' \
&& php -m | grep -oiE '^sockets$' \
&& php-fpm -m | grep -oiE '^sockets$' \
&& php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^iconv$' \
&& php-fpm -m | grep -oiE '^iconv$' \
&& php -m | grep -oiE '^pdo_pgsql$' \
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
&& php -m | grep -oiE '^zip$' \
&& php-fpm -m | grep -oiE '^zip$' \
&& php -m | grep -oiE '^xmlwriter$' \
&& php-fpm -m | grep -oiE '^xmlwriter$' \
&& php -m | grep -oiE '^snmp$' \
&& php-fpm -m | grep -oiE '^snmp$' \
&& php -m | grep -oiE '^gettext$' \
&& php-fpm -m | grep -oiE '^gettext$' \
&& php -m | grep -oiE '^pgsql$' \
&& php-fpm -m | grep -oiE '^pgsql$' \
&& php -m | grep -oiE '^json$' \
&& php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^interbase$' \
&& php-fpm -m | grep -oiE '^interbase$' \
&& php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^sysvmsg$' \
&& php-fpm -m | grep -oiE '^sysvmsg$' \
&& php -m | grep -oiE '^gmp$' \
&& php-fpm -m | grep -oiE '^gmp$' \
&& php -m | grep -oiE '^sysvshm$' \
&& php-fpm -m | grep -oiE '^sysvshm$' \
&& php -m | grep -oiE '^soap$' \
&& php-fpm -m | grep -oiE '^soap$' \
&& php -m | grep -oiE '^pdo_firebird$' \
&& php-fpm -m | grep -oiE '^pdo_firebird$' \
&& php -m | grep -oiE '^hash$' \
&& php-fpm -m | grep -oiE '^hash$' \
&& php -m | grep -oiE '^xmlrpc$' \
&& php-fpm -m | grep -oiE '^xmlrpc$' \
&& php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^ctype$' \
&& php-fpm -m | grep -oiE '^ctype$' \
&& php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^sysvsem$' \
&& php-fpm -m | grep -oiE '^sysvsem$' \
&& php -m | grep -oiE '^pspell$' \
&& php-fpm -m | grep -oiE '^pspell$' \
&& php -m | grep -oiE '^mysqli$' \
&& php-fpm -m | grep -oiE '^mysqli$' \
&& php -m | grep -oiE '^readline$' \
&& php-fpm -m | grep -oiE '^readline$' \
&& php -m | grep -oiE '^pdo_sqlite$' \
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
&& php -m | grep -oiE '^imap$' \
&& php-fpm -m | grep -oiE '^imap$' \
&& php -m | grep -oiE '^bz2$' \
&& php-fpm -m | grep -oiE '^bz2$' \
&& php -m | grep -oiE '^wddx$' \
&& php-fpm -m | grep -oiE '^wddx$' \
&& php -m | grep -oiE '^exif$' \
&& php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^xml$' \
&& php-fpm -m | grep -oiE '^xml$' \
&& php -m | grep -oiE '^dom$' \
&& php-fpm -m | grep -oiE '^dom$' \
&& php -m | grep -oiE '^pdo_dblib$' \
&& php-fpm -m | grep -oiE '^pdo_dblib$' \
&& php -m | grep -oiE '^xmlreader$' \
&& php-fpm -m | grep -oiE '^xmlreader$' \
&& php -m | grep -oiE '^session$' \
&& php-fpm -m | grep -oiE '^session$' \
&& php -m | grep -oiE '^posix$' \
&& php-fpm -m | grep -oiE '^posix$' \
&& php -m | grep -oiE '^simplexml$' \
&& php-fpm -m | grep -oiE '^simplexml$' \
&& php -m | grep -oiE '^calendar$' \
&& php-fpm -m | grep -oiE '^calendar$' \
&& php -m | grep -oiE '^mcrypt$' \
&& php-fpm -m | grep -oiE '^mcrypt$' \
&& php -m | grep -oiE '^enchant$' \
&& php-fpm -m | grep -oiE '^enchant$' \
&& php -m | grep -oiE '^xsl$' \
&& php-fpm -m | grep -oiE '^xsl$' \
&& php -m | grep -oiE '^xdebug$' \
&& php-fpm -m | grep -oiE '^xdebug$' \
&& php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^swoole$' \
&& php-fpm -m | grep -oiE '^swoole$' \
&& php -m | grep -oiE '^mongodb$' \
&& php-fpm -m | grep -oiE '^mongodb$' \
&& php -m | grep -oiE '^memcache$' \
&& php-fpm -m | grep -oiE '^memcache$' \
&& php -m | grep -oiE '^redis$' \
&& php-fpm -m | grep -oiE '^redis$' \
&& php -m | grep -oiE '^uploadprogress$' \
&& php-fpm -m | grep -oiE '^uploadprogress$' \
&& php -m | grep -oiE '^imagick$' \
&& php-fpm -m | grep -oiE '^imagick$' \
&& php -m | grep -oiE '^msgpack$' \
&& php-fpm -m | grep -oiE '^msgpack$' \
&& php -m | grep -oiE '^memcached$' \
&& php-fpm -m | grep -oiE '^memcached$' \
&& php -m | grep -oiE '^igbinary$' \
&& php-fpm -m | grep -oiE '^igbinary$' \
&& php -m | grep -oiE '^apcu$' \
&& php-fpm -m | grep -oiE '^apcu$' \
&& php -m | grep -oiE '^phalcon$' \
&& php-fpm -m | grep -oiE '^phalcon$' \
&& true
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,394 @@
# Auto-generated via Ansible
FROM devilbox/php-fpm:7.0-base
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 7.0 Image" \
image="devilbox/php-fpm" \
tag="7.0-mods" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV BUILD_DEPS \
libicu-dev \
libtidy-dev \
libssl-dev \
libpng-dev \
libjpeg-dev \
libxpm-dev \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \
libwebp-dev \
librecode-dev \
libcurl4-openssl-dev \
libssl-dev \
libpq-dev \
zlib1g-dev \
libzip-dev \
libxml2-dev \
libssl-dev \
libsnmp-dev \
snmp \
libpq-dev \
libfbclient2 \
libib-util \
firebird-dev \
libldap2-dev \
libsasl2-dev \
libgmp-dev \
libxml2-dev \
libfbclient2 \
libib-util \
firebird-dev \
libxml2-dev \
libpspell-dev \
libedit-dev \
libreadline-dev \
libsqlite3-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libbz2-dev \
libxml2-dev \
libxml2-dev \
libxml2-dev \
freetds-dev \
libmm-dev \
libxml2-dev \
libmcrypt-dev \
libenchant-dev \
libxslt-dev \
librabbitmq-dev \
libnghttp2-dev \
libssl-dev \
libnghttp2-5 \
libmagickwand-dev \
zlib1g-dev \
libmemcached-dev \
git \
ca-certificates
ENV RUN_DEPS \
libicu52 \
libtidy-0.99-0 \
libpng12-0 \
libjpeg62-turbo \
libxpm4 \
libvpx1 \
libfreetype6 \
libwebp-dev \
librecode0 \
libpq5 \
libzip2 \
snmp \
libpq5 \
libfbclient2 \
libfbclient2 \
libaspell15 \
libc-client2007e \
libsybdb5 \
libmcrypt4 \
libenchant1c2a \
libxslt1.1 \
librabbitmq1 \
libnghttp2-5 \
libmagickwand-6.q16-2 \
libmemcachedutil2 \
ca-certificates
###
### Install
###
RUN set -x \
&& apt-get update \
&& apt-get install --no-install-recommends --no-install-suggests -y \
${BUILD_DEPS} \
\
\
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
&& /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \
&& /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
&& /usr/local/bin/docker-php-ext-configure session --with-mm \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \
&& /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
\
\
&& pecl install xdebug \
&& docker-php-ext-enable xdebug \
&& echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \
&& pecl install swoole \
&& docker-php-ext-enable swoole \
&& pecl install mongodb \
&& docker-php-ext-enable mongodb \
&& pecl install redis \
&& docker-php-ext-enable redis \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& pecl install msgpack \
&& docker-php-ext-enable msgpack \
&& pecl install memcached \
&& docker-php-ext-enable memcached \
&& pecl install igbinary \
&& docker-php-ext-enable igbinary \
&& pecl install apcu \
&& docker-php-ext-enable apcu \
\
\
&& git clone -v https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
&& cd /tmp/uploadprogress \
&& git checkout master \
&& cd /tmp/uploadprogress && phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install \
&& docker-php-ext-enable uploadprogress \
&& cd / && rm -rf /tmp/uploadprogress \
&& git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \
&& cd /tmp/phalcon \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \
&& cd /tmp/phalcon && cd build && ./install \
&& docker-php-ext-enable phalcon \
&& cd / && rm -rf /tmp/phalcon \
\
\
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \
${BUILD_DEPS} \
\
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \
&& update-ca-certificates \
&& find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \
&& php -m | grep -oiE '^pdo_mysql$' \
&& php-fpm -m | grep -oiE '^pdo_mysql$' \
&& php -m | grep -oiE '^tokenizer$' \
&& php-fpm -m | grep -oiE '^tokenizer$' \
&& php -m | grep -oiE '^dba$' \
&& php-fpm -m | grep -oiE '^dba$' \
&& php -m | grep -oiE '^intl$' \
&& php-fpm -m | grep -oiE '^intl$' \
&& php -m | grep -oiE '^shmop$' \
&& php-fpm -m | grep -oiE '^shmop$' \
&& php -m | grep -oiE '^tidy$' \
&& php-fpm -m | grep -oiE '^tidy$' \
&& php -m | grep -oiE '^bcmath$' \
&& php-fpm -m | grep -oiE '^bcmath$' \
&& php -m | grep -oiE '^phar$' \
&& php-fpm -m | grep -oiE '^phar$' \
&& php -m | grep -oiE '^gd$' \
&& php-fpm -m | grep -oiE '^gd$' \
&& php -m | grep -oiE '^recode$' \
&& php-fpm -m | grep -oiE '^recode$' \
&& php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
&& php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^curl$' \
&& php-fpm -m | grep -oiE '^curl$' \
&& php -m | grep -oiE '^sockets$' \
&& php-fpm -m | grep -oiE '^sockets$' \
&& php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^iconv$' \
&& php-fpm -m | grep -oiE '^iconv$' \
&& php -m | grep -oiE '^pdo_pgsql$' \
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
&& php -m | grep -oiE '^zip$' \
&& php-fpm -m | grep -oiE '^zip$' \
&& php -m | grep -oiE '^xmlwriter$' \
&& php-fpm -m | grep -oiE '^xmlwriter$' \
&& php -m | grep -oiE '^snmp$' \
&& php-fpm -m | grep -oiE '^snmp$' \
&& php -m | grep -oiE '^gettext$' \
&& php-fpm -m | grep -oiE '^gettext$' \
&& php -m | grep -oiE '^pgsql$' \
&& php-fpm -m | grep -oiE '^pgsql$' \
&& php -m | grep -oiE '^json$' \
&& php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^interbase$' \
&& php-fpm -m | grep -oiE '^interbase$' \
&& php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^sysvmsg$' \
&& php-fpm -m | grep -oiE '^sysvmsg$' \
&& php -m | grep -oiE '^gmp$' \
&& php-fpm -m | grep -oiE '^gmp$' \
&& php -m | grep -oiE '^sysvshm$' \
&& php-fpm -m | grep -oiE '^sysvshm$' \
&& php -m | grep -oiE '^soap$' \
&& php-fpm -m | grep -oiE '^soap$' \
&& php -m | grep -oiE '^pdo_firebird$' \
&& php-fpm -m | grep -oiE '^pdo_firebird$' \
&& php -m | grep -oiE '^hash$' \
&& php-fpm -m | grep -oiE '^hash$' \
&& php -m | grep -oiE '^xmlrpc$' \
&& php-fpm -m | grep -oiE '^xmlrpc$' \
&& php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^ctype$' \
&& php-fpm -m | grep -oiE '^ctype$' \
&& php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^sysvsem$' \
&& php-fpm -m | grep -oiE '^sysvsem$' \
&& php -m | grep -oiE '^pspell$' \
&& php-fpm -m | grep -oiE '^pspell$' \
&& php -m | grep -oiE '^readline$' \
&& php-fpm -m | grep -oiE '^readline$' \
&& php -m | grep -oiE '^pdo_sqlite$' \
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
&& php -m | grep -oiE '^imap$' \
&& php-fpm -m | grep -oiE '^imap$' \
&& php -m | grep -oiE '^bz2$' \
&& php-fpm -m | grep -oiE '^bz2$' \
&& php -m | grep -oiE '^wddx$' \
&& php-fpm -m | grep -oiE '^wddx$' \
&& php -m | grep -oiE '^exif$' \
&& php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^xml$' \
&& php-fpm -m | grep -oiE '^xml$' \
&& php -m | grep -oiE '^dom$' \
&& php-fpm -m | grep -oiE '^dom$' \
&& php -m | grep -oiE '^pdo_dblib$' \
&& php-fpm -m | grep -oiE '^pdo_dblib$' \
&& php -m | grep -oiE '^session$' \
&& php-fpm -m | grep -oiE '^session$' \
&& php -m | grep -oiE '^posix$' \
&& php-fpm -m | grep -oiE '^posix$' \
&& php -m | grep -oiE '^simplexml$' \
&& php-fpm -m | grep -oiE '^simplexml$' \
&& php -m | grep -oiE '^calendar$' \
&& php-fpm -m | grep -oiE '^calendar$' \
&& php -m | grep -oiE '^mcrypt$' \
&& php-fpm -m | grep -oiE '^mcrypt$' \
&& php -m | grep -oiE '^enchant$' \
&& php-fpm -m | grep -oiE '^enchant$' \
&& php -m | grep -oiE '^xsl$' \
&& php-fpm -m | grep -oiE '^xsl$' \
&& php -m | grep -oiE '^xdebug$' \
&& php-fpm -m | grep -oiE '^xdebug$' \
&& php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^swoole$' \
&& php-fpm -m | grep -oiE '^swoole$' \
&& php -m | grep -oiE '^mongodb$' \
&& php-fpm -m | grep -oiE '^mongodb$' \
&& php -m | grep -oiE '^redis$' \
&& php-fpm -m | grep -oiE '^redis$' \
&& php -m | grep -oiE '^imagick$' \
&& php-fpm -m | grep -oiE '^imagick$' \
&& php -m | grep -oiE '^msgpack$' \
&& php-fpm -m | grep -oiE '^msgpack$' \
&& php -m | grep -oiE '^memcached$' \
&& php-fpm -m | grep -oiE '^memcached$' \
&& php -m | grep -oiE '^igbinary$' \
&& php-fpm -m | grep -oiE '^igbinary$' \
&& php -m | grep -oiE '^apcu$' \
&& php-fpm -m | grep -oiE '^apcu$' \
&& php -m | grep -oiE '^uploadprogress$' \
&& php-fpm -m | grep -oiE '^uploadprogress$' \
&& php -m | grep -oiE '^phalcon$' \
&& php-fpm -m | grep -oiE '^phalcon$' \
&& true
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,394 @@
# Auto-generated via Ansible
FROM devilbox/php-fpm:7.1-base
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 7.1 Image" \
image="devilbox/php-fpm" \
tag="7.1-mods" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV BUILD_DEPS \
libicu-dev \
libtidy-dev \
libssl-dev \
libpng-dev \
libjpeg-dev \
libxpm-dev \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \
libwebp-dev \
librecode-dev \
libcurl4-openssl-dev \
libssl-dev \
libpq-dev \
zlib1g-dev \
libzip-dev \
libxml2-dev \
libssl-dev \
libsnmp-dev \
snmp \
libpq-dev \
libfbclient2 \
libib-util \
firebird-dev \
libldap2-dev \
libsasl2-dev \
libgmp-dev \
libxml2-dev \
libfbclient2 \
libib-util \
firebird-dev \
libxml2-dev \
libpspell-dev \
libedit-dev \
libreadline-dev \
libsqlite3-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libbz2-dev \
libxml2-dev \
libxml2-dev \
libxml2-dev \
freetds-dev \
libmm-dev \
libxml2-dev \
libmcrypt-dev \
libenchant-dev \
libxslt-dev \
librabbitmq-dev \
libnghttp2-dev \
libssl-dev \
libnghttp2-5 \
libmagickwand-dev \
zlib1g-dev \
libmemcached-dev \
git \
ca-certificates
ENV RUN_DEPS \
libicu52 \
libtidy-0.99-0 \
libpng12-0 \
libjpeg62-turbo \
libxpm4 \
libvpx1 \
libfreetype6 \
libwebp-dev \
librecode0 \
libpq5 \
libzip2 \
snmp \
libpq5 \
libfbclient2 \
libfbclient2 \
libaspell15 \
libc-client2007e \
libsybdb5 \
libmcrypt4 \
libenchant1c2a \
libxslt1.1 \
librabbitmq1 \
libnghttp2-5 \
libmagickwand-6.q16-2 \
libmemcachedutil2 \
ca-certificates
###
### Install
###
RUN set -x \
&& apt-get update \
&& apt-get install --no-install-recommends --no-install-suggests -y \
${BUILD_DEPS} \
\
\
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
&& /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \
&& /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
&& /usr/local/bin/docker-php-ext-configure session --with-mm \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \
&& /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
\
\
&& pecl install xdebug \
&& docker-php-ext-enable xdebug \
&& echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \
&& pecl install swoole \
&& docker-php-ext-enable swoole \
&& pecl install mongodb \
&& docker-php-ext-enable mongodb \
&& pecl install redis \
&& docker-php-ext-enable redis \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& pecl install msgpack \
&& docker-php-ext-enable msgpack \
&& pecl install memcached \
&& docker-php-ext-enable memcached \
&& pecl install igbinary \
&& docker-php-ext-enable igbinary \
&& pecl install apcu \
&& docker-php-ext-enable apcu \
\
\
&& git clone -v https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
&& cd /tmp/uploadprogress \
&& git checkout master \
&& cd /tmp/uploadprogress && phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install \
&& docker-php-ext-enable uploadprogress \
&& cd / && rm -rf /tmp/uploadprogress \
&& git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \
&& cd /tmp/phalcon \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \
&& cd /tmp/phalcon && cd build && ./install \
&& docker-php-ext-enable phalcon \
&& cd / && rm -rf /tmp/phalcon \
\
\
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \
${BUILD_DEPS} \
\
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \
&& update-ca-certificates \
&& find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \
&& php -m | grep -oiE '^pdo_mysql$' \
&& php-fpm -m | grep -oiE '^pdo_mysql$' \
&& php -m | grep -oiE '^tokenizer$' \
&& php-fpm -m | grep -oiE '^tokenizer$' \
&& php -m | grep -oiE '^dba$' \
&& php-fpm -m | grep -oiE '^dba$' \
&& php -m | grep -oiE '^intl$' \
&& php-fpm -m | grep -oiE '^intl$' \
&& php -m | grep -oiE '^shmop$' \
&& php-fpm -m | grep -oiE '^shmop$' \
&& php -m | grep -oiE '^tidy$' \
&& php-fpm -m | grep -oiE '^tidy$' \
&& php -m | grep -oiE '^bcmath$' \
&& php-fpm -m | grep -oiE '^bcmath$' \
&& php -m | grep -oiE '^phar$' \
&& php-fpm -m | grep -oiE '^phar$' \
&& php -m | grep -oiE '^gd$' \
&& php-fpm -m | grep -oiE '^gd$' \
&& php -m | grep -oiE '^recode$' \
&& php-fpm -m | grep -oiE '^recode$' \
&& php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
&& php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^curl$' \
&& php-fpm -m | grep -oiE '^curl$' \
&& php -m | grep -oiE '^sockets$' \
&& php-fpm -m | grep -oiE '^sockets$' \
&& php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^iconv$' \
&& php-fpm -m | grep -oiE '^iconv$' \
&& php -m | grep -oiE '^pdo_pgsql$' \
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
&& php -m | grep -oiE '^zip$' \
&& php-fpm -m | grep -oiE '^zip$' \
&& php -m | grep -oiE '^xmlwriter$' \
&& php-fpm -m | grep -oiE '^xmlwriter$' \
&& php -m | grep -oiE '^snmp$' \
&& php-fpm -m | grep -oiE '^snmp$' \
&& php -m | grep -oiE '^gettext$' \
&& php-fpm -m | grep -oiE '^gettext$' \
&& php -m | grep -oiE '^pgsql$' \
&& php-fpm -m | grep -oiE '^pgsql$' \
&& php -m | grep -oiE '^json$' \
&& php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^interbase$' \
&& php-fpm -m | grep -oiE '^interbase$' \
&& php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^sysvmsg$' \
&& php-fpm -m | grep -oiE '^sysvmsg$' \
&& php -m | grep -oiE '^gmp$' \
&& php-fpm -m | grep -oiE '^gmp$' \
&& php -m | grep -oiE '^sysvshm$' \
&& php-fpm -m | grep -oiE '^sysvshm$' \
&& php -m | grep -oiE '^soap$' \
&& php-fpm -m | grep -oiE '^soap$' \
&& php -m | grep -oiE '^pdo_firebird$' \
&& php-fpm -m | grep -oiE '^pdo_firebird$' \
&& php -m | grep -oiE '^hash$' \
&& php-fpm -m | grep -oiE '^hash$' \
&& php -m | grep -oiE '^xmlrpc$' \
&& php-fpm -m | grep -oiE '^xmlrpc$' \
&& php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^ctype$' \
&& php-fpm -m | grep -oiE '^ctype$' \
&& php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^sysvsem$' \
&& php-fpm -m | grep -oiE '^sysvsem$' \
&& php -m | grep -oiE '^pspell$' \
&& php-fpm -m | grep -oiE '^pspell$' \
&& php -m | grep -oiE '^readline$' \
&& php-fpm -m | grep -oiE '^readline$' \
&& php -m | grep -oiE '^pdo_sqlite$' \
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
&& php -m | grep -oiE '^imap$' \
&& php-fpm -m | grep -oiE '^imap$' \
&& php -m | grep -oiE '^bz2$' \
&& php-fpm -m | grep -oiE '^bz2$' \
&& php -m | grep -oiE '^wddx$' \
&& php-fpm -m | grep -oiE '^wddx$' \
&& php -m | grep -oiE '^exif$' \
&& php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^xml$' \
&& php-fpm -m | grep -oiE '^xml$' \
&& php -m | grep -oiE '^dom$' \
&& php-fpm -m | grep -oiE '^dom$' \
&& php -m | grep -oiE '^pdo_dblib$' \
&& php-fpm -m | grep -oiE '^pdo_dblib$' \
&& php -m | grep -oiE '^session$' \
&& php-fpm -m | grep -oiE '^session$' \
&& php -m | grep -oiE '^posix$' \
&& php-fpm -m | grep -oiE '^posix$' \
&& php -m | grep -oiE '^simplexml$' \
&& php-fpm -m | grep -oiE '^simplexml$' \
&& php -m | grep -oiE '^calendar$' \
&& php-fpm -m | grep -oiE '^calendar$' \
&& php -m | grep -oiE '^mcrypt$' \
&& php-fpm -m | grep -oiE '^mcrypt$' \
&& php -m | grep -oiE '^enchant$' \
&& php-fpm -m | grep -oiE '^enchant$' \
&& php -m | grep -oiE '^xsl$' \
&& php-fpm -m | grep -oiE '^xsl$' \
&& php -m | grep -oiE '^xdebug$' \
&& php-fpm -m | grep -oiE '^xdebug$' \
&& php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^swoole$' \
&& php-fpm -m | grep -oiE '^swoole$' \
&& php -m | grep -oiE '^mongodb$' \
&& php-fpm -m | grep -oiE '^mongodb$' \
&& php -m | grep -oiE '^redis$' \
&& php-fpm -m | grep -oiE '^redis$' \
&& php -m | grep -oiE '^imagick$' \
&& php-fpm -m | grep -oiE '^imagick$' \
&& php -m | grep -oiE '^msgpack$' \
&& php-fpm -m | grep -oiE '^msgpack$' \
&& php -m | grep -oiE '^memcached$' \
&& php-fpm -m | grep -oiE '^memcached$' \
&& php -m | grep -oiE '^igbinary$' \
&& php-fpm -m | grep -oiE '^igbinary$' \
&& php -m | grep -oiE '^apcu$' \
&& php-fpm -m | grep -oiE '^apcu$' \
&& php -m | grep -oiE '^uploadprogress$' \
&& php-fpm -m | grep -oiE '^uploadprogress$' \
&& php -m | grep -oiE '^phalcon$' \
&& php-fpm -m | grep -oiE '^phalcon$' \
&& true
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,399 @@
# Auto-generated via Ansible
FROM devilbox/php-fpm:7.2-base
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 7.2 Image" \
image="devilbox/php-fpm" \
tag="7.2-mods" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV BUILD_DEPS \
libicu-dev \
libtidy-dev \
libssl-dev \
libpng-dev \
libjpeg-dev \
libxpm-dev \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \
libwebp-dev \
librecode-dev \
libcurl4-openssl-dev \
libssl-dev \
libpq-dev \
zlib1g-dev \
libzip-dev \
libsodium-dev \
libxml2-dev \
libssl-dev \
libsnmp-dev \
snmp \
libpq-dev \
libfbclient2 \
libib-util \
firebird-dev \
libldap2-dev \
libsasl2-dev \
libgmp-dev \
libxml2-dev \
libfbclient2 \
libib-util \
firebird-dev \
libxml2-dev \
libpspell-dev \
libedit-dev \
libreadline-dev \
libsqlite3-dev \
libc-client-dev \
libkrb5-dev \
libcurl4-openssl-dev \
libbz2-dev \
libxml2-dev \
libxml2-dev \
libxml2-dev \
freetds-dev \
libmm-dev \
libxml2-dev \
libenchant-dev \
libxslt-dev \
librabbitmq-dev \
libnghttp2-dev \
libssl-dev \
libnghttp2-5 \
libmagickwand-dev \
libmcrypt-dev \
zlib1g-dev \
libmemcached-dev \
git \
ca-certificates
ENV RUN_DEPS \
libicu57 \
libtidy5 \
libpng16-16 \
libjpeg62-turbo \
libxpm4 \
libvpx4 \
libfreetype6 \
libwebp6 \
librecode0 \
libpq5 \
libzip4 \
snmp \
libpq5 \
libfbclient2 \
libfbclient2 \
libaspell15 \
libc-client2007e \
libsybdb5 \
libenchant1c2a \
libxslt1.1 \
librabbitmq4 \
libnghttp2-14 \
libmagickwand-6.q16-3 \
libmcrypt4 \
libmemcachedutil2 \
ca-certificates
###
### Install
###
RUN set -x \
&& apt-get update \
&& apt-get install --no-install-recommends --no-install-suggests -y \
${BUILD_DEPS} \
\
\
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tokenizer \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) curl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sodium \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) json \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) hash \
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ctype \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) fileinfo \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_sqlite \
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
&& /usr/local/bin/docker-php-ext-configure xml --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xml \
&& /usr/local/bin/docker-php-ext-configure dom --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dom \
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
&& /usr/local/bin/docker-php-ext-configure session --with-mm \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) session \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \
&& /usr/local/bin/docker-php-ext-configure simplexml --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) simplexml \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
\
\
&& pecl install xdebug \
&& docker-php-ext-enable xdebug \
&& echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \
&& pecl install swoole \
&& docker-php-ext-enable swoole \
&& pecl install mongodb \
&& docker-php-ext-enable mongodb \
&& pecl install redis \
&& docker-php-ext-enable redis \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& pecl install msgpack \
&& docker-php-ext-enable msgpack \
&& pecl install mcrypt-1.0.1 \
&& docker-php-ext-enable mcrypt \
&& pecl install memcached \
&& docker-php-ext-enable memcached \
&& pecl install igbinary \
&& docker-php-ext-enable igbinary \
&& pecl install apcu \
&& docker-php-ext-enable apcu \
\
\
&& git clone -v https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
&& cd /tmp/uploadprogress \
&& git checkout master \
&& cd /tmp/uploadprogress && phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install \
&& docker-php-ext-enable uploadprogress \
&& cd / && rm -rf /tmp/uploadprogress \
&& git clone -v https://github.com/phalcon/cphalcon /tmp/phalcon \
&& cd /tmp/phalcon \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \
&& cd /tmp/phalcon && cd build && ./install \
&& docker-php-ext-enable phalcon \
&& cd / && rm -rf /tmp/phalcon \
\
\
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \
${BUILD_DEPS} \
\
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \
&& update-ca-certificates \
&& find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \
&& php -m | grep -oiE '^pdo_mysql$' \
&& php-fpm -m | grep -oiE '^pdo_mysql$' \
&& php -m | grep -oiE '^tokenizer$' \
&& php-fpm -m | grep -oiE '^tokenizer$' \
&& php -m | grep -oiE '^dba$' \
&& php-fpm -m | grep -oiE '^dba$' \
&& php -m | grep -oiE '^intl$' \
&& php-fpm -m | grep -oiE '^intl$' \
&& php -m | grep -oiE '^shmop$' \
&& php-fpm -m | grep -oiE '^shmop$' \
&& php -m | grep -oiE '^tidy$' \
&& php-fpm -m | grep -oiE '^tidy$' \
&& php -m | grep -oiE '^bcmath$' \
&& php-fpm -m | grep -oiE '^bcmath$' \
&& php -m | grep -oiE '^phar$' \
&& php-fpm -m | grep -oiE '^phar$' \
&& php -m | grep -oiE '^gd$' \
&& php-fpm -m | grep -oiE '^gd$' \
&& php -m | grep -oiE '^recode$' \
&& php-fpm -m | grep -oiE '^recode$' \
&& php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
&& php -m | grep -oiE '^pcntl$' \
&& php-fpm -m | grep -oiE '^pcntl$' \
&& php -m | grep -oiE '^curl$' \
&& php-fpm -m | grep -oiE '^curl$' \
&& php -m | grep -oiE '^sockets$' \
&& php-fpm -m | grep -oiE '^sockets$' \
&& php -m | grep -oiE '^ftp$' \
&& php-fpm -m | grep -oiE '^ftp$' \
&& php -m | grep -oiE '^iconv$' \
&& php-fpm -m | grep -oiE '^iconv$' \
&& php -m | grep -oiE '^pdo_pgsql$' \
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
&& php -m | grep -oiE '^zip$' \
&& php-fpm -m | grep -oiE '^zip$' \
&& php -m | grep -oiE '^sodium$' \
&& php-fpm -m | grep -oiE '^sodium$' \
&& php -m | grep -oiE '^xmlwriter$' \
&& php-fpm -m | grep -oiE '^xmlwriter$' \
&& php -m | grep -oiE '^snmp$' \
&& php-fpm -m | grep -oiE '^snmp$' \
&& php -m | grep -oiE '^gettext$' \
&& php-fpm -m | grep -oiE '^gettext$' \
&& php -m | grep -oiE '^pgsql$' \
&& php-fpm -m | grep -oiE '^pgsql$' \
&& php -m | grep -oiE '^json$' \
&& php-fpm -m | grep -oiE '^json$' \
&& php -m | grep -oiE '^interbase$' \
&& php-fpm -m | grep -oiE '^interbase$' \
&& php -m | grep -oiE '^mbstring$' \
&& php-fpm -m | grep -oiE '^mbstring$' \
&& php -m | grep -oiE '^ldap$' \
&& php-fpm -m | grep -oiE '^ldap$' \
&& php -m | grep -oiE '^sysvmsg$' \
&& php-fpm -m | grep -oiE '^sysvmsg$' \
&& php -m | grep -oiE '^gmp$' \
&& php-fpm -m | grep -oiE '^gmp$' \
&& php -m | grep -oiE '^sysvshm$' \
&& php-fpm -m | grep -oiE '^sysvshm$' \
&& php -m | grep -oiE '^soap$' \
&& php-fpm -m | grep -oiE '^soap$' \
&& php -m | grep -oiE '^pdo_firebird$' \
&& php-fpm -m | grep -oiE '^pdo_firebird$' \
&& php -m | grep -oiE '^hash$' \
&& php-fpm -m | grep -oiE '^hash$' \
&& php -m | grep -oiE '^xmlrpc$' \
&& php-fpm -m | grep -oiE '^xmlrpc$' \
&& php -m | grep -oiE '^pdo$' \
&& php-fpm -m | grep -oiE '^pdo$' \
&& php -m | grep -oiE '^ctype$' \
&& php-fpm -m | grep -oiE '^ctype$' \
&& php -m | grep -oiE '^fileinfo$' \
&& php-fpm -m | grep -oiE '^fileinfo$' \
&& php -m | grep -oiE '^sysvsem$' \
&& php-fpm -m | grep -oiE '^sysvsem$' \
&& php -m | grep -oiE '^pspell$' \
&& php-fpm -m | grep -oiE '^pspell$' \
&& php -m | grep -oiE '^readline$' \
&& php-fpm -m | grep -oiE '^readline$' \
&& php -m | grep -oiE '^pdo_sqlite$' \
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
&& php -m | grep -oiE '^imap$' \
&& php-fpm -m | grep -oiE '^imap$' \
&& php -m | grep -oiE '^bz2$' \
&& php-fpm -m | grep -oiE '^bz2$' \
&& php -m | grep -oiE '^wddx$' \
&& php-fpm -m | grep -oiE '^wddx$' \
&& php -m | grep -oiE '^exif$' \
&& php-fpm -m | grep -oiE '^exif$' \
&& php -m | grep -oiE '^xml$' \
&& php-fpm -m | grep -oiE '^xml$' \
&& php -m | grep -oiE '^dom$' \
&& php-fpm -m | grep -oiE '^dom$' \
&& php -m | grep -oiE '^pdo_dblib$' \
&& php-fpm -m | grep -oiE '^pdo_dblib$' \
&& php -m | grep -oiE '^session$' \
&& php-fpm -m | grep -oiE '^session$' \
&& php -m | grep -oiE '^posix$' \
&& php-fpm -m | grep -oiE '^posix$' \
&& php -m | grep -oiE '^simplexml$' \
&& php-fpm -m | grep -oiE '^simplexml$' \
&& php -m | grep -oiE '^calendar$' \
&& php-fpm -m | grep -oiE '^calendar$' \
&& php -m | grep -oiE '^enchant$' \
&& php-fpm -m | grep -oiE '^enchant$' \
&& php -m | grep -oiE '^xsl$' \
&& php-fpm -m | grep -oiE '^xsl$' \
&& php -m | grep -oiE '^xdebug$' \
&& php-fpm -m | grep -oiE '^xdebug$' \
&& php -m | grep -oiE '^amqp$' \
&& php-fpm -m | grep -oiE '^amqp$' \
&& php -m | grep -oiE '^swoole$' \
&& php-fpm -m | grep -oiE '^swoole$' \
&& php -m | grep -oiE '^mongodb$' \
&& php-fpm -m | grep -oiE '^mongodb$' \
&& php -m | grep -oiE '^redis$' \
&& php-fpm -m | grep -oiE '^redis$' \
&& php -m | grep -oiE '^imagick$' \
&& php-fpm -m | grep -oiE '^imagick$' \
&& php -m | grep -oiE '^msgpack$' \
&& php-fpm -m | grep -oiE '^msgpack$' \
&& php -m | grep -oiE '^mcrypt$' \
&& php-fpm -m | grep -oiE '^mcrypt$' \
&& php -m | grep -oiE '^memcached$' \
&& php-fpm -m | grep -oiE '^memcached$' \
&& php -m | grep -oiE '^igbinary$' \
&& php-fpm -m | grep -oiE '^igbinary$' \
&& php -m | grep -oiE '^apcu$' \
&& php-fpm -m | grep -oiE '^apcu$' \
&& php -m | grep -oiE '^uploadprogress$' \
&& php-fpm -m | grep -oiE '^uploadprogress$' \
&& php -m | grep -oiE '^phalcon$' \
&& php-fpm -m | grep -oiE '^phalcon$' \
&& true
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,89 @@
# Auto-generated via Ansible
FROM devilbox/php-fpm:5.4-mods
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 5.4 Image" \
image="devilbox/php-fpm" \
tag="5.4-prod" \
vendor="devilbox" \
license="MIT"
###
### Install
###
RUN set -x \
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \
locales-all \
postfix \
postfix-pcre \
rsyslog \
socat \
supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \
&& rm -rf /var/lib/apt/lists/* \
\
&& rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor
###
### Configure
###
RUN set -x \
&& { \
echo "[mail function]"; \
echo "sendmail_path = /usr/sbin/sendmail -t -i"; \
echo ";mail.force_extra_parameters ="; \
echo "mail.add_x_header = On"; \
echo "mail.log = /var/log/php/mail.log"; \
} > /usr/local/etc/php/conf.d/devilbox-mail.ini
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
###
### Copy files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
###
### Volumes
###
VOLUME /etc/php-custom.d
VOLUME /etc/php-modules.d
VOLUME /var/log/php
VOLUME /var/mail
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,89 @@
# Auto-generated via Ansible
FROM devilbox/php-fpm:5.5-mods
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 5.5 Image" \
image="devilbox/php-fpm" \
tag="5.5-prod" \
vendor="devilbox" \
license="MIT"
###
### Install
###
RUN set -x \
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \
locales-all \
postfix \
postfix-pcre \
rsyslog \
socat \
supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \
&& rm -rf /var/lib/apt/lists/* \
\
&& rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor
###
### Configure
###
RUN set -x \
&& { \
echo "[mail function]"; \
echo "sendmail_path = /usr/sbin/sendmail -t -i"; \
echo ";mail.force_extra_parameters ="; \
echo "mail.add_x_header = On"; \
echo "mail.log = /var/log/php/mail.log"; \
} > /usr/local/etc/php/conf.d/devilbox-mail.ini
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
###
### Copy files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
###
### Volumes
###
VOLUME /etc/php-custom.d
VOLUME /etc/php-modules.d
VOLUME /var/log/php
VOLUME /var/mail
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,89 @@
# Auto-generated via Ansible
FROM devilbox/php-fpm:5.6-mods
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 5.6 Image" \
image="devilbox/php-fpm" \
tag="5.6-prod" \
vendor="devilbox" \
license="MIT"
###
### Install
###
RUN set -x \
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \
locales-all \
postfix \
postfix-pcre \
rsyslog \
socat \
supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \
&& rm -rf /var/lib/apt/lists/* \
\
&& rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor
###
### Configure
###
RUN set -x \
&& { \
echo "[mail function]"; \
echo "sendmail_path = /usr/sbin/sendmail -t -i"; \
echo ";mail.force_extra_parameters ="; \
echo "mail.add_x_header = On"; \
echo "mail.log = /var/log/php/mail.log"; \
} > /usr/local/etc/php/conf.d/devilbox-mail.ini
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
###
### Copy files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
###
### Volumes
###
VOLUME /etc/php-custom.d
VOLUME /etc/php-modules.d
VOLUME /var/log/php
VOLUME /var/mail
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,89 @@
# Auto-generated via Ansible
FROM devilbox/php-fpm:7.0-mods
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 7.0 Image" \
image="devilbox/php-fpm" \
tag="7.0-prod" \
vendor="devilbox" \
license="MIT"
###
### Install
###
RUN set -x \
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \
locales-all \
postfix \
postfix-pcre \
rsyslog \
socat \
supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \
&& rm -rf /var/lib/apt/lists/* \
\
&& rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor
###
### Configure
###
RUN set -x \
&& { \
echo "[mail function]"; \
echo "sendmail_path = /usr/sbin/sendmail -t -i"; \
echo ";mail.force_extra_parameters ="; \
echo "mail.add_x_header = On"; \
echo "mail.log = /var/log/php/mail.log"; \
} > /usr/local/etc/php/conf.d/devilbox-mail.ini
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
###
### Copy files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
###
### Volumes
###
VOLUME /etc/php-custom.d
VOLUME /etc/php-modules.d
VOLUME /var/log/php
VOLUME /var/mail
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,89 @@
# Auto-generated via Ansible
FROM devilbox/php-fpm:7.1-mods
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 7.1 Image" \
image="devilbox/php-fpm" \
tag="7.1-prod" \
vendor="devilbox" \
license="MIT"
###
### Install
###
RUN set -x \
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \
locales-all \
postfix \
postfix-pcre \
rsyslog \
socat \
supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \
&& rm -rf /var/lib/apt/lists/* \
\
&& rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor
###
### Configure
###
RUN set -x \
&& { \
echo "[mail function]"; \
echo "sendmail_path = /usr/sbin/sendmail -t -i"; \
echo ";mail.force_extra_parameters ="; \
echo "mail.add_x_header = On"; \
echo "mail.log = /var/log/php/mail.log"; \
} > /usr/local/etc/php/conf.d/devilbox-mail.ini
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
###
### Copy files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
###
### Volumes
###
VOLUME /etc/php-custom.d
VOLUME /etc/php-modules.d
VOLUME /var/log/php
VOLUME /var/mail
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,89 @@
# Auto-generated via Ansible
FROM devilbox/php-fpm:7.2-mods
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 7.2 Image" \
image="devilbox/php-fpm" \
tag="7.2-prod" \
vendor="devilbox" \
license="MIT"
###
### Install
###
RUN set -x \
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \
locales-all \
postfix \
postfix-pcre \
rsyslog \
socat \
supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \
&& rm -rf /var/lib/apt/lists/* \
\
&& rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor
###
### Configure
###
RUN set -x \
&& { \
echo "[mail function]"; \
echo "sendmail_path = /usr/sbin/sendmail -t -i"; \
echo ";mail.force_extra_parameters ="; \
echo "mail.add_x_header = On"; \
echo "mail.log = /var/log/php/mail.log"; \
} > /usr/local/etc/php/conf.d/devilbox-mail.ini
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
###
### Copy files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
###
### Volumes
###
VOLUME /etc/php-custom.d
VOLUME /etc/php-modules.d
VOLUME /var/log/php
VOLUME /var/mail
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,60 @@
#!/bin/sh
#
# Available global variables:
# + MY_USER
# + MY_GROUP
# + DEBUG_LEVEL
set -e
set -u
############################################################
# Functions
############################################################
###
### Change Timezone
###
set_timezone() {
tz_env_varname="${1}"
tz_php_ini="${2}"
if ! env_set "${tz_env_varname}"; then
log "info" "\$${tz_env_varname} not set."
log "info" "Setting PHP: timezone=UTC"
run "sed -i'' 's|^[[:space:]]*;*[[:space:]]*date\.timezone[[:space:]]*=.*$|date.timezone = UTF|g' ${tz_php_ini}"
else
tz_timezone="$( env_get "${tz_env_varname}" )"
if [ -f "/usr/share/zoneinfo/${tz_timezone}" ]; then
# Unix Time
log "info" "Setting container timezone to: ${tz_timezone}"
run "rm /etc/localtime"
run "ln -s /usr/share/zoneinfo/${tz_timezone} /etc/localtime"
# PHP Time
log "info" "Setting PHP: timezone=${tz_timezone}"
run "sed -i'' 's|^[[:space:]]*;*[[:space:]]*date\.timezone[[:space:]]*=.*$|date.timezone = ${tz_timezone}|g' ${tz_php_ini}"
else
log "err" "Invalid timezone for \$${tz_env_varname}."
log "err" "\$TIMEZONE: '${tz_timezone}' does not exist."
exit 1
fi
fi
log "info" "Docker date set to: $(date)"
unset -v tz_env_varname
unset -v tz_php_ini
unset -v tz_timezone
}
############################################################
# Sanity Checks
############################################################
if ! command -v sed >/dev/null 2>&1; then
echo "sed not found, but required."
exit 1
fi

View File

@@ -0,0 +1,71 @@
#!/bin/sh
#
# Available global variables:
# + MY_USER
# + MY_GROUP
# + DEBUG_LEVEL
set -e
set -u
############################################################
# Functions
############################################################
###
### Setup Postfix for catch-all
###
set_postfix() {
postfix_env_varname="${1}"
if ! env_set "${postfix_env_varname}"; then
log "info" "\$${postfix_env_varname} not set."
log "info" "Disabling sending of emails"
else
postfix_env_value="$( env_get "${postfix_env_varname}" )"
if [ "${postfix_env_value}" = "1" ]; then
log "info" "Enabling sending of emails"
# Add Mail file if it does not exist
if [ ! -f "/var/mail/${MY_USER}" ]; then
run "touch /var/mail/${MY_USER}"
fi
# Fix mail user permissions after mount
run "chmod 0644 /var/mail/${MY_USER}"
run "chown ${MY_USER}:${MY_GROUP} /var/mail"
run "chown ${MY_USER}:${MY_GROUP} /var/mail/${MY_USER}"
# Postfix configuration
run "postconf -e 'inet_protocols=ipv4'"
run "postconf -e 'virtual_alias_maps=pcre:/etc/postfix/virtual'"
run "echo '/.*@.*/ ${MY_USER}' >> /etc/postfix/virtual"
run "newaliases"
elif [ "${postfix_env_value}" = "0" ]; then
log "info" "Disabling sending of emails."
else
log "err" "Invalid value for \$${postfix_env_varname}"
log "err" "Only 1 (for on) or 0 (for off) are allowed"
exit 1
fi
fi
unset -v postfix_env_varname
unset -v postfix_env_value
}
############################################################
# Sanity Checks
############################################################
if ! command -v postconf >/dev/null 2>&1; then
echo "postconf not found, but required."
exit 1
fi

View File

@@ -0,0 +1,116 @@
#!/bin/sh
#
# Available global variables:
# + MY_USER
# + MY_GROUP
# + DEBUG_LEVEL
set -e
set -u
############################################################
# Helper Functions
############################################################
# Check if PHP-FPM config files contain valid logging directives
_validate_docker_logs() {
vdl_fpm_error_log_conf="${1}"
vdl_fpm_access_log_conf="${2}"
if [ ! -f "${vdl_fpm_error_log_conf}" ]; then
log "err" "PHP-FPM Error log config file does not exist in: ${vdl_fpm_error_log_conf}"
exit 1
fi
if [ ! -f "${vdl_fpm_access_log_conf}" ]; then
log "err" "PHP-FPM Access log config file does not exist in: ${dl_fpm_access_log_conf}"
exit 1
fi
if ! grep -Eq '^error_log.*$' "${vdl_fpm_error_log_conf}"; then
log "err" "PHP-FPM Error log config file has no error logging directive"
exit 1
fi
if ! grep -Eq '^access\.log.*$' "${vdl_fpm_access_log_conf}"; then
log "err" "PHP-FPM Access log config file has no access logging directive"
exit 1
fi
unset -v vdl_fpm_error_log_conf
unset -v vdl_fpm_access_log_conf
}
############################################################
# Functions
############################################################
###
### Change UID
###
set_docker_logs() {
dl_env_varname="${1}"
dl_log_dir="${2}"
dl_fpm_error_log_conf="${3}"
dl_fpm_access_log_conf="${4}"
if ! env_set "${dl_env_varname}"; then
log "info" "\$${dl_env_varname} not set."
log "info" "Logging to docker logs stdout and stderr"
else
dl_docker_logs="$( env_get "${dl_env_varname}" )"
# Disable docker logs and log to files
if [ "${dl_docker_logs}" = "0" ]; then
log "info" "\$${dl_env_varname} set to 0. Logging to files under: ${dl_log_dir}"
log "info" "Make sure to mount this directory in order to view logs"
# Validation
_validate_docker_logs "${dl_fpm_error_log_conf}" "${dl_fpm_access_log_conf}"
# Create Log directory
if [ ! -d "${dl_log_dir}" ]; then
run "mkdir -p ${dl_log_dir}"
fi
# Fix permissions (in case uid/gid has changed)
if [ ! -f "${dl_log_dir}/php-fpm.access" ]; then
touch "${dl_log_dir}/php-fpm.access"
fi
if [ ! -f "${dl_log_dir}/php-fpm.error" ]; then
touch "${dl_log_dir}/php-fpm.error"
fi
run "chown -R ${MY_USER}:${MY_GROUP} ${dl_log_dir}"
# Adjust PHP-FPM config to log to file
run "sed -i'' 's|^error_log.*$|error_log = ${dl_log_dir}/php-fpm.error|g' ${dl_fpm_error_log_conf}"
run "sed -i'' 's|^access\.log.*$|access.log = ${dl_log_dir}/php-fpm.access|g' ${dl_fpm_access_log_conf}"
# Keep docker logs
elif [ "${dl_docker_logs}" = "1" ]; then
log "info" "\$${dl_env_varname} set to 1. Logging to docker logs stdout and stderr."
else
log "err" "Invalid value for \$${dl_env_varname}. Can only be 0 or 1. Provided: ${dl_docker_logs}"
exit 1
fi
fi
unset -v dl_env_varname
unset -v dl_log_dir
unset -v dl_fpm_error_log_conf
unset -v dl_fpm_access_log_conf
unset -v dl_docker_logs
}
############################################################
# Sanity Checks
############################################################
if ! command -v sed >/dev/null 2>&1; then
echo "sed not found, but required."
exit 1
fi

View File

@@ -0,0 +1,204 @@
#!/bin/sh
#
# Available global variables:
# + MY_USER
# + MY_GROUP
# + DEBUG_LEVEL
set -e
set -u
############################################################
# Helper Functions
############################################################
###
### Helper functions
###
_isip() {
# IP is not in correct format
if ! echo "${1}" | grep -Eq '^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})$'; then
return 1
fi
# Get each octet
isip_o1="$( echo "${1}" | awk -F'.' '{print $1}' )"
isip_o2="$( echo "${1}" | awk -F'.' '{print $2}' )"
isip_o3="$( echo "${1}" | awk -F'.' '{print $3}' )"
isip_o4="$( echo "${1}" | awk -F'.' '{print $4}' )"
# Cannot start with 0 and all must be below 256
if [ "${isip_o1}" -lt "1" ] || \
[ "${isip_o1}" -gt "255" ] || \
[ "${isip_o2}" -gt "255" ] || \
[ "${isip_o3}" -gt "255" ] || \
[ "${isip_o4}" -gt "255" ]; then
unset -v isip_o1
unset -v isip_o2
unset -v isip_o3
unset -v isip_o4
# Error
return 1
fi
unset -v isip_o1
unset -v isip_o2
unset -v isip_o3
unset -v isip_o4
# Success
return 0
}
_ishostname() {
# Does not have correct character class
if ! echo "${1}" | grep -Eq '^[-.0-9a-zA-Z]+$'; then
return 1
fi
# first and last character
ishostname_f_char="$( echo "${1}" | cut -c1-1 )"
ishostname_l_char="$( echo "${1}" | sed -e 's/.*\(.\)$/\1/' )"
# Dot at beginning or end
if [ "${ishostname_f_char}" = "." ] || [ "${ishostname_l_char}" = "." ]; then
unset -v ishostname_f_char
unset -v ishostname_l_char
# Error
return 1
fi
# Dash at beginning or end
if [ "${ishostname_f_char}" = "-" ] || [ "${ishostname_l_char}" = "-" ]; then
unset -v ishostname_f_char
unset -v ishostname_l_char
# Error
return 1
fi
unset -v ishostname_f_char
unset -v ishostname_l_char
# Multiple dots next to each other
if echo "${1}" | grep -Eq '[.]{2,}'; then
# Error
return 1
fi
# Dash next to dot
if echo "${1}" | grep -Eq '(\.-)|(-\.)'; then
# Error
return 1
fi
# Success
return 0
}
############################################################
# Functions
############################################################
###
###
###
port_forward_get_lines() {
if env_set "${1}"; then
# Transform into newline separated forwards:
# local-port:host:remote-port\n
# local-port:host:remote-port\n
pfl_forwards="$( env_get "${1}" | sed 's/[[:space:]]*//g' | sed 's/,/\n/g' )"
# loop over them line by line
IFS='
'
for pfl_line in ${pfl_forwards}; do
echo "${pfl_line}"
done
unset -v pfl_forwards
unset -v pfl_line
fi
}
port_forward_get_lport() {
# local-port:host:remote-port\n
echo "${1}" | awk -F':' '{print $1}'
}
port_forward_get_rhost() {
# local-port:host:remote-port\n
echo "${1}" | awk -F':' '{print $2}'
}
port_forward_get_rport() {
# local-port:host:remote-port\n
echo "${1}" | awk -F':' '{print $3}'
}
port_forward_validate() {
pfv_env_varname="${1}"
if ! env_set "${pfv_env_varname}"; then
log "info" "\$${pfv_env_varname} not set."
log "info" "Not ports from other machines will be forwarded to 127.0.0.1 inside this docker"
else
# Loop over forwards in order to validate them
for pfv_line in $( port_forward_get_lines "${pfv_env_varname}" ); do
pfv_lport="$( port_forward_get_lport "${pfv_line}" )"
pfv_rhost="$( port_forward_get_rhost "${pfv_line}" )"
pfv_rport="$( port_forward_get_rport "${pfv_line}" )"
if ! isint "${pfv_lport}"; then
log "err" "Port forwarding error: local port is not an integer: ${pfv_lport}"
log "err" "Line: ${pfv_line}"
exit 1
fi
if ! _isip "${pfv_rhost}" && ! _ishostname "${pfv_rhost}"; then
log "err" "Port forwarding error: remote host is not a valid IP and not a valid hostname: ${pfv_rhost}"
log "err" "Line: ${pfv_line}"
log "err" ""
exit 1
fi
if ! isint "${pfv_rport}"; then
log "err" "Port forwarding error: remote port is not an integer: ${pfv_rport}"
log "err" "Line: ${pfv_line}"
log "err" ""
exit 1
fi
log "info" "Forwarding ${pfv_rhost}:${pfv_rport} to 127.0.0.1:${pfv_lport} inside this docker."
done
unset -v pfv_line
unset -v pfv_lport
unset -v pfv_rhost
unset -v pfv_rport
fi
unset -v pfv_env_varname
}
############################################################
# Sanity Checks
############################################################
if ! command -v awk >/dev/null 2>&1; then
echo "awk not found, but required."
exit 1
fi
if ! command -v cut >/dev/null 2>&1; then
echo "cut not found, but required."
exit 1
fi
if ! command -v sed >/dev/null 2>&1; then
echo "sed not found, but required."
exit 1
fi

View File

@@ -0,0 +1,58 @@
#!/bin/sh
#
# Available global variables:
# + MY_USER
# + MY_GROUP
# + DEBUG_LEVEL
set -e
set -u
############################################################
# Functions
############################################################
###
### Copy *.ini files from source to destination with prefix
###
copy_ini_files() {
ini_src="${1}"
ini_dst="${2}"
if [ ! -d "${ini_src}" ]; then
run "mkdir -p ${ini_src}"
fi
ini_files="$( find "${ini_src}" -type f -iname '*.ini' )"
# loop over them line by line
IFS='
'
for ini_f in ${ini_files}; do
ini_name="$( basename "${ini_f}" )"
log "info" "PHP.ini: ${ini_name} -> ${ini_dst}/zzz-devilbox-${ini_name}"
run "cp ${ini_f} ${ini_dst}/devilbox-${ini_name}"
done
run "find ${ini_dst} -type f -iname '*.ini' -exec chmod 0644 \"{}\" \;"
unset -v ini_src
unset -v ini_dst
unset -v ini_files
unset -v ini_f
unset -v ini_name
}
############################################################
# Sanity Checks
############################################################
if ! command -v find >/dev/null 2>&1; then
echo "find not found, but required."
exit 1
fi
if ! command -v basename >/dev/null 2>&1; then
echo "basename not found, but required."
exit 1
fi

View File

@@ -0,0 +1,60 @@
#!/bin/sh
#
# Available global variables:
# + MY_USER
# + MY_GROUP
# + DEBUG_LEVEL
set -e
set -u
############################################################
# Functions
############################################################
###
### Add service to supervisord
###
supervisor_add_service() {
supervisor_name="${1}"
supervisor_command="${2}"
supervisor_confd="${3}"
supervisor_priority=
if [ "${#}" -gt "3" ]; then
supervisor_priority="${4}"
fi
if [ ! -d "${supervisor_confd}" ]; then
run "mkdir -p ${supervisor_confd}"
fi
# Add services
{
echo "[program:${supervisor_name}]";
echo "command = ${supervisor_command}";
if [ -n "${supervisor_priority}" ]; then
echo "priority = ${supervisor_priority}";
fi
echo "autostart = true";
echo "autorestart = true";
echo "stdout_logfile = /dev/stdout";
echo "stdout_logfile_maxbytes = 0";
echo "stdout_events_enabled = true";
echo "stderr_logfile = /dev/stderr";
echo "stderr_logfile_maxbytes = 0";
echo "stderr_events_enabled = true";
} > "${supervisor_confd}/${supervisor_name}.conf"
unset -v supervisor_name
unset -v supervisor_command
unset -v supervisor_confd
unset -v supervisor_priority
}

View File

@@ -0,0 +1,132 @@
#!/bin/sh
#
# Available global variables:
# + MY_USER
# + MY_GROUP
set -e
set -u
###
### Variables
###
PHP_INI_PATH="/usr/local/etc/php.ini"
FPM_ERROR_LOG_CFG="/usr/local/etc/php-fpm.conf"
FPM_ACCESS_LOG_CFG="/usr/local/etc/php-fpm.d/zzz-docker.conf"
FPM_LOG_DIR="/var/log/php"
#PHP_CUST_MODULE_DIR="/etc/php-modules.d"
PHP_CUST_INI_DIR="/etc/php-custom.d"
PHP_REAL_INI_DIR="/usr/local/etc/php.d"
SUPERVISOR_CONFD="/etc/supervisor/conf.d"
###
### Source libs
###
init="$( find /docker-entrypoint.d -name '*.sh' -type f | sort -u )"
for f in ${init}; do
# shellcheck disable=SC1090
. "${f}"
done
###
### Set Debug level
###
DEBUG_LEVEL="$( get_debug_level "DEBUG_ENTRYPOINT" "0" )"
log "info" "Debug level: ${DEBUG_LEVEL}" "${DEBUG_LEVEL}"
#############################################################
## Sanity checks
#############################################################
if ! command -v socat >/dev/null 2>&1; then
log "err" "socat not found, but required." "${DEBUG_LEVEL}"
exit 1
fi
#############################################################
## Entry Point
#############################################################
###
### Change uid/gid
###
set_uid "NEW_UID"
set_gid "NEW_GID"
###
### Set timezone
###
set_timezone "TIMEZONE" "${PHP_INI_PATH}"
###
### Set Logging
###
set_docker_logs \
"DOCKER_LOGS" \
"${FPM_LOG_DIR}" \
"${FPM_ERROR_LOG_CFG}" \
"${FPM_ACCESS_LOG_CFG}"
###
### Setup postfix
###
set_postfix "ENABLE_MAIL"
###
### Validate socat port forwards
###
if ! port_forward_validate "FORWARD_PORTS_TO_LOCALHOST"; then
exit 1
fi
###
### Supervisor: socat
###
for line in $( port_forward_get_lines "FORWARD_PORTS_TO_LOCALHOST" ); do
lport="$( port_forward_get_lport "${line}" )"
rhost="$( port_forward_get_rhost "${line}" )"
rport="$( port_forward_get_rport "${line}" )"
supervisor_add_service "socat-${lport}-${rhost}-${rport}" "/usr/bin/socat tcp-listen:${lport},reuseaddr,fork tcp:${rhost}:${rport}" "${SUPERVISOR_CONFD}"
done
###
### Supervisor: rsyslogd & postfix
###
if [ "$( env_get "ENABLE_MAIL" )" = "1" ]; then
supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${SUPERVISOR_CONFD}" "1"
supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${SUPERVISOR_CONFD}"
fi
###
### Supervisor: php-fpm
###
supervisor_add_service "php-fpm" "/usr/local/sbin/php-fpm" "${SUPERVISOR_CONFD}"
###
### Copy custom *.ini files
###
copy_ini_files "${PHP_CUST_INI_DIR}" "${PHP_REAL_INI_DIR}"
###
### Start
###
exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf

View File

@@ -0,0 +1,95 @@
#!/usr/bin/env bash
#
# Wrapper to have postfix run in foreground
# mode in order to be called by supvervisord
#
#
# CREDITS:
# This script is mostly based on the following Gist:
# https://gist.github.com/chrisnew/b0c1b8d310fc5ceaeac4
#
###
### Be strict
###
set -e
set -u
set -o pipefail
###
### Variables
###
if [ -f "/etc/alpine-release" ]; then
MAILLOG="/var/log/maillog"
elif [ -f "/etc/debian_version" ]; then
MAILLOG="/var/log/mail.log"
else
MAILLOG="/var/log/maillog"
fi
MAILPID="/var/spool/postfix/pid/master.pid"
###
### Sanity checks
###
if ! command -v pidof >/dev/null 2>&1; then
echo "pidof is required for cleaning up tail command."
exit 1
fi
# Give rsyslogd some time to start up
sleep 2
if ! pidof rsyslogd >/dev/null 2>&1; then
echo "rsyslogd is not running, but required for mail logging."
exit 1
fi
# force new copy of hosts there (otherwise links could be outdated)
# TODO: check if required
#cp /etc/hosts /var/spool/postfix/etc/hosts
###
### Trap signals
###
trap "postfix stop" SIGINT
trap "postfix stop" SIGTERM
trap "postfix reload" SIGHUP
###
### Startup
###
# start postfix
postfix start
# Capture output
tail -qF -n 0 "${MAILLOG}" &
tail_pid="${?}"
###
### Warm-up time
###
sleep 3
###
### Wait for kill signales
###
while kill -0 "$(cat "${MAILPID}")" >/dev/null 2>&1; do
# Check every second
sleep 1
done
###
### Clean-up
###
kill "${tail_pid}"

View File

@@ -0,0 +1,9 @@
[supervisord]
user = root
nodaemon = true
logfile = /var/log/supervisor/supervisord.log
pidfile = /var/run/supervisord.pid
childlogdir = /var/log/supervisor
[include]
files = /etc/supervisor/conf.d/*.conf

21
LICENSE.md Normal file
View File

@@ -0,0 +1,21 @@
# MIT License
**Copyright (c) 2018 [cytopia](https://github.com/cytopia)**
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -0,0 +1,73 @@
# Auto-generated via Ansible
FROM php:{{ php_version }}-fpm
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM {{ php_version }} Image" \
image="devilbox/php-fpm" \
tag="{{ php_version }}-base" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV MY_USER="devilbox" \
MY_GROUP="devilbox" \
MY_UID="1000" \
MY_GID="1000"
###
### User/Group
###
RUN set -x \
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
###
### Upgrade
###
RUN set -x \
&& apt-get update \
&& apt-get upgrade -y \
&& rm -rf /var/lib/apt/lists/*
###
### Copy files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf
COPY ./data/php-fpm.d/devilbox.conf /usr/local/etc/php-fpm.d/zzz-devilbox.conf
{% if debug %}
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
{% endif %}
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,349 @@
# Auto-generated via Ansible
FROM devilbox/php-fpm:{{ php_version }}-base
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM {{ php_version }} Image" \
image="devilbox/php-fpm" \
tag="{{ php_version }}-mods" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV BUILD_DEPS \
{# ---- PHP Built-in Extensions ---- #}
{% for ext in php_builtin_extensions.keys() %}
{# Enabled #}
{% if php_version in php_builtin_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %}
{# Version specific build_deps available #}
{% if php_version in php_builtin_extensions[ext] and 'build_dep' in php_builtin_extensions[ext][php_version] %}
{% for dep in php_builtin_extensions[ext][php_version]['build_dep'] %}
{{ dep }} \
{% endfor %}
{# General build_deps available? #}
{% elif 'all' in php_builtin_extensions[ext] and 'build_dep' in php_builtin_extensions[ext]['all'] %}
{% for dep in php_builtin_extensions[ext]['all']['build_dep'] %}
{{ dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{# ---- PHP PECL Extensions ---- #}
{% for ext in php_pecl_extensions.keys() %}
{# Enabled #}
{% if php_version in php_pecl_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %}
{# Version specific build_deps available #}
{% if php_version in php_pecl_extensions[ext] and 'build_dep' in php_pecl_extensions[ext][php_version] %}
{% for dep in php_pecl_extensions[ext][php_version]['build_dep'] %}
{{ dep }} \
{% endfor %}
{# General build_deps available? #}
{% elif 'all' in php_pecl_extensions[ext] and 'build_dep' in php_pecl_extensions[ext]['all'] %}
{% for dep in php_pecl_extensions[ext]['all']['build_dep'] %}
{{ dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{# ---- PHP GIT Extensions git requirement ---- #}
{% if php_git_extensions %}
git \
{% endif %}
{# ---- PHP GIT Extensions ---- #}
{% for ext in php_git_extensions.keys() %}
{# Enabled #}
{% if php_version in php_git_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %}
{# Version specific build_deps available #}
{% if php_version in php_git_extensions[ext] and 'build_dep' in php_git_extensions[ext][php_version] %}
{% for dep in php_git_extensions[ext][php_version]['build_dep'] %}
{{ dep }} \
{% endfor %}
{# General build_deps available? #}
{% elif 'all' in php_git_extensions[ext] and 'build_dep' in php_git_extensions[ext]['all'] %}
{% for dep in php_git_extensions[ext]['all']['build_dep'] %}
{{ dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
ca-certificates
ENV RUN_DEPS \
{# ---- PHP Built-in Extensions ---- #}
{% for ext in php_builtin_extensions.keys() %}
{# Enabled #}
{% if php_version in php_builtin_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %}
{# Version specific run_deps available #}
{% if php_version in php_builtin_extensions[ext] and 'run_dep' in php_builtin_extensions[ext][php_version] %}
{% for dep in php_builtin_extensions[ext][php_version]['run_dep'] %}
{{ dep }} \
{% endfor %}
{# General config available? #}
{% elif 'all' in php_builtin_extensions[ext] and 'run_dep' in php_builtin_extensions[ext]['all'] %}
{% for dep in php_builtin_extensions[ext]['all']['run_dep'] %}
{{ dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{# ---- PHP PECL Extensions ---- #}
{% for ext in php_pecl_extensions.keys() %}
{# Enabled #}
{% if php_version in php_pecl_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %}
{# Version specific run_deps available #}
{% if php_version in php_pecl_extensions[ext] and 'run_dep' in php_pecl_extensions[ext][php_version] %}
{% for dep in php_pecl_extensions[ext][php_version]['run_dep'] %}
{{ dep }} \
{% endfor %}
{# General run_deps available? #}
{% elif 'all' in php_pecl_extensions[ext] and 'run_dep' in php_pecl_extensions[ext]['all'] %}
{% for dep in php_pecl_extensions[ext]['all']['run_dep'] %}
{{ dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{# ---- PHP GIT Extensions ---- #}
{% for ext in php_git_extensions.keys() %}
{# Enabled #}
{% if php_version in php_git_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %}
{# Version specific run_deps available #}
{% if php_version in php_git_extensions[ext] and 'run_dep' in php_git_extensions[ext][php_version] %}
{% for dep in php_git_extensions[ext][php_version]['run_dep'] %}
{{ dep }} \
{% endfor %}
{# General run_deps available? #}
{% elif 'all' in php_git_extensions[ext] and 'run_dep' in php_git_extensions[ext]['all'] %}
{% for dep in php_git_extensions[ext]['all']['run_dep'] %}
{{ dep }} \
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
ca-certificates
###
### Install
###
RUN set -x \
&& apt-get update \
&& apt-get install --no-install-recommends --no-install-suggests -y \
${BUILD_DEPS} \
\
\
{# ---- PHP Built-in Extensions ---- #}
{% for ext in php_builtin_extensions.keys() %}
{# Enabled #}
{% if php_version in php_builtin_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %}
{# Version specific command available #}
{% if php_version in php_builtin_extensions[ext] and 'command' in php_builtin_extensions[ext][php_version] %}
&& {{ php_builtin_extensions[ext][php_version]['command'] }} \
{# General command available? #}
{% elif 'all' in php_builtin_extensions[ext] and 'command' in php_builtin_extensions[ext]['all'] %}
&& {{ php_builtin_extensions[ext]['all']['command'] }} \
{% endif %}
{# Version specific configure available #}
{% if php_version in php_builtin_extensions[ext] and 'configure' in php_builtin_extensions[ext][php_version] %}
&& /usr/local/bin/docker-php-ext-configure {{ ext }} {{ php_builtin_extensions[ext][php_version]['configure'] }} \
{# General configure available? #}
{% elif 'all' in php_builtin_extensions[ext] and 'configure' in php_builtin_extensions[ext]['all'] %}
&& /usr/local/bin/docker-php-ext-configure {{ ext }} {{ php_builtin_extensions[ext]['all']['configure'] }} \
{% endif %}
&& /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
{% endif %}
{% endif %}
{% endfor %}
\
\
{# ---- PHP PECL Extensions ---- #}
{% for ext in php_pecl_extensions.keys() %}
{# Enabled #}
{% if php_version in php_pecl_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %}
{# Version specific command available #}
{% if php_version in php_pecl_extensions[ext] and 'command' in php_pecl_extensions[ext][php_version] %}
&& {{ php_pecl_extensions[ext][php_version]['command'] }} \
{# General command available? #}
{% elif 'all' in php_pecl_extensions[ext] and 'command' in php_pecl_extensions[ext]['all'] %}
&& {{ php_pecl_extensions[ext]['all']['command'] }} \
{# Version specific name available #}
{% elif php_version in php_pecl_extensions[ext] and 'alt_name' in php_pecl_extensions[ext][php_version] %}
&& pecl install {{ php_pecl_extensions[ext][php_version]['alt_name'] }} \
{# General name available? #}
{% elif 'all' in php_pecl_extensions[ext] and 'alt_name' in php_pecl_extensions[ext]['all'] %}
&& pecl install {{ php_pecl_extensions[ext]['all']['alt_name'] }} \
{% else %}
&& pecl install {{ ext }} \
{% endif %}
{# Version specific module available #}
{% if php_version in php_pecl_extensions[ext] and 'alt_module' in php_pecl_extensions[ext][php_version] %}
&& docker-php-ext-enable {{ php_pecl_extensions[ext][php_version]['alt_module'] }} \
{# General module available? #}
{% elif 'all' in php_pecl_extensions[ext] and 'alt_module' in php_pecl_extensions[ext]['all'] %}
&& docker-php-ext-enable {{ php_pecl_extensions[ext]['all']['alt_module'] }} \
{% else %}
&& docker-php-ext-enable {{ ext }} \
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
\
\
{# ---- PHP GIT Extensions ---- #}
{% for ext in php_git_extensions.keys() %}
{# Enabled #}
{% if php_version in php_git_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %}
{# Version specific url available #}
{% if php_version in php_git_extensions[ext] and 'git_url' in php_git_extensions[ext][php_version] %}
&& git clone -v {{ php_git_extensions[ext][php_version]['git_url'] }} /tmp/{{ ext }} \
{# General url available? #}
{% else %}
&& git clone -v {{ php_git_extensions[ext]['all']['git_url'] }} /tmp/{{ ext }} \
{% endif %}
{# Version specific ref available #}
{% if php_version in php_git_extensions[ext] and 'git_ref' in php_git_extensions[ext][php_version] %}
&& cd /tmp/{{ ext }} \
&& git checkout {{ php_git_extensions[ext][php_version]['git_ref'] }} \
{# General ref available? #}
{% elif 'all' in php_git_extensions[ext] and 'git_ref' in php_git_extensions[ext]['all'] %}
&& cd /tmp/{{ ext }} \
&& git checkout {{ php_git_extensions[ext]['all']['git_ref'] }} \
{% endif %}
{# Version specific command available #}
{% if php_version in php_git_extensions[ext] and 'command' in php_git_extensions[ext][php_version] %}
&& cd /tmp/{{ ext }} && {{ php_git_extensions[ext][php_version]['command'] }} \
{# General command available? #}
{% else %}
&& cd /tmp/{{ ext }} && {{ php_git_extensions[ext]['all']['command'] }} \
{% endif %}
{# Version specific module available #}
{% if php_version in php_git_extensions[ext] and 'alt_module' in php_git_extensions[ext][php_version] %}
&& docker-php-ext-enable {{ php_git_extensions[ext][php_version]['alt_module'] }} \
{# General module available? #}
{% elif 'all' in php_git_extensions[ext] and 'alt_module' in php_git_extensions[ext]['all'] %}
&& docker-php-ext-enable {{ php_git_extensions[ext]['all']['alt_module'] }} \
{% else %}
&& docker-php-ext-enable {{ ext }} \
{% endif %}
{# Cleanup #}
&& cd / && rm -rf /tmp/{{ ext }} \
{% endif %}
{% endif %}
{% endfor %}
\
\
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \
${BUILD_DEPS} \
\
\
&& apt-get install --no-install-recommends --no-install-suggests -y \
${RUN_DEPS} \
&& rm -rf /var/lib/apt/lists/* \
&& update-ca-certificates \
&& find /usr/local -type f -perm /u+x -exec strip --strip-all '{}' + || true
{% if debug %}
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \
{# ---- PHP Built-in Extensions ---- #}
{% for ext in php_builtin_extensions.keys() %}
{# Enabled #}
{% if php_version in php_builtin_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_builtin_extensions[ext]) or (php_version not in php_builtin_extensions[ext]['disabled']) %}
{% if ext == 'opcache' %}
&& php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
{% else %}
&& php -m | grep -oiE '^{{ ext }}$' \
&& php-fpm -m | grep -oiE '^{{ ext }}$' \
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{# ---- PHP PECL Extensions ---- #}
{% for ext in php_pecl_extensions.keys() %}
{# Enabled #}
{% if php_version in php_pecl_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_pecl_extensions[ext]) or (php_version not in php_pecl_extensions[ext]['disabled']) %}
{% if ext == 'opcache' %}
&& php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
{% else %}
&& php -m | grep -oiE '^{{ ext }}$' \
&& php-fpm -m | grep -oiE '^{{ ext }}$' \
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
{# ---- PHP GIT Extensions ---- #}
{% for ext in php_git_extensions.keys() %}
{# Enabled #}
{% if php_version in php_git_extensions[ext]['enabled'] %}
{# Not Disabled #}
{% if ('disabled' not in php_git_extensions[ext]) or (php_version not in php_git_extensions[ext]['disabled']) %}
{% if ext == 'opcache' %}
&& php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
{% else %}
&& php -m | grep -oiE '^{{ ext }}$' \
&& php-fpm -m | grep -oiE '^{{ ext }}$' \
{% endif %}
{% endif %}
{% endif %}
{% endfor %}
&& true
{% endif %}
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,91 @@
# Auto-generated via Ansible
FROM devilbox/php-fpm:{{ php_version }}-mods
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM {{ php_version }} Image" \
image="devilbox/php-fpm" \
tag="{{ php_version }}-prod" \
vendor="devilbox" \
license="MIT"
###
### Install
###
RUN set -x \
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --no-install-suggests -y \
locales-all \
postfix \
postfix-pcre \
rsyslog \
socat \
supervisor \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \
&& rm -rf /var/lib/apt/lists/* \
\
&& rm -rf /etc/supervisor* \
&& mkdir -p /etc/supervisor/conf.d \
&& mkdir -p /var/log/supervisor
###
### Configure
###
RUN set -x \
&& { \
echo "[mail function]"; \
echo "sendmail_path = /usr/sbin/sendmail -t -i"; \
echo ";mail.force_extra_parameters ="; \
echo "mail.add_x_header = On"; \
echo "mail.log = /var/log/php/mail.log"; \
} > /usr/local/etc/php/conf.d/devilbox-mail.ini
{% if debug %}
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
{% endif %}
###
### Copy files
###
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
###
### Volumes
###
VOLUME /etc/php-custom.d
VOLUME /etc/php-modules.d
VOLUME /var/log/php
VOLUME /var/mail
###
### Ports
###
EXPOSE 9000
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

6
build/ansible/README.md Normal file
View File

@@ -0,0 +1,6 @@
Ansible is used to generate Dockerfiles
```bash
ansible-playbook generate.yml
```

View File

@@ -0,0 +1,3 @@
[defaults]
roles_path = ./roles
inventory = inventory

View File

@@ -0,0 +1,8 @@
---
- hosts: all
gather_facts: False
roles:
- template
tags:
- template

View File

@@ -0,0 +1,479 @@
---
template_files:
- src: DOCKERFILES/Dockerfile-base.j2
dst: "../../Dockerfiles/base/Dockerfile-{{ php_version }}"
- src: DOCKERFILES/Dockerfile-mods.j2
dst: "../../Dockerfiles/mods/Dockerfile-{{ php_version }}"
- src: DOCKERFILES/Dockerfile-prod.j2
dst: "../../Dockerfiles/prod/Dockerfile-{{ php_version }}"
# Adds self-validating checks to Dockerfile
# turn off for final build
debug: True
php_all_versions:
- 5.4
- 5.5
- 5.6
- 7.0
- 7.1
- 7.2
php_conf_dir: /usr/local/etc/php.d
###
### Available GIT extensions
###
### <ext>:
### enabled: []
### disabled: []
### all:
### git_url: Url for git clone
### git_ref: git branch tag, commit or shell command to retrieve a tag or commit
### command: command to install
### alt_module: alternative module name to enable (precedence over <ext>.so)
### build_dep:
### run_dep:
###
php_git_extensions:
phalcon:
enabled: "{{ php_all_versions }}"
5.4:
git_ref: phalcon-v2.0.13
all:
git_url: https://github.com/phalcon/cphalcon
git_ref: $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g')
command: cd build && ./install
uploadprogress:
enabled: "{{ php_all_versions }}"
disabled: [5.4, 5.5, 5.6]
all:
git_url: https://github.com/php/pecl-php-uploadprogress
git_ref: master
command: phpize && ./configure --enable-uploadprogress && make -j$(getconf _NPROCESSORS_ONLN) && make install
###
### Available PECL extensions
###
### <ext>:
### enabled: []
### disabled: []
### all:
### command: alternative command to install (precedence over <alt_name> and <ext>
### alt_name: alternative name of <ext> to install (precedence over <ext>
### alt_module: alternative module name to enable (precedence over <ext>.so)
### build_dep:
### run_dep:
###
php_pecl_extensions:
#apc:
# enabled: "{{ php_all_versions }}"
# disabled: [5.5, 5.6, 7.0, 7.1, 7.2]
#apcu_bc:
# enabled: "{{ php_all_versions }}"
# disabled: [5.4, 5.5, 5.6]
# all:
# alt_module: apc
apcu:
enabled: "{{ php_all_versions }}"
5.4:
alt_name: apcu-4.0.11
5.5:
alt_name: apcu-4.0.11
5.6:
alt_name: apcu-4.0.11
amqp:
enabled: "{{ php_all_versions }}"
7.2:
run_dep: [librabbitmq4]
all:
command: echo "/usr" | pecl install amqp
build_dep: [librabbitmq-dev]
run_dep: [librabbitmq1]
igbinary:
enabled: "{{ php_all_versions }}"
imagick:
enabled: "{{ php_all_versions }}"
7.2:
run_dep: [libmagickwand-6.q16-3]
all:
build_dep: [libmagickwand-dev]
run_dep: [libmagickwand-6.q16-2]
mcrypt:
enabled: "{{ php_all_versions }}"
disabled: [5.4, 5.5, 5.6, 7.0, 7.1] # Already avail by default
7.2:
alt_name: mcrypt-1.0.1
build_dep: [libmcrypt-dev]
run_dep: [libmcrypt4]
memcache:
enabled: "{{ php_all_versions }}"
disabled: [7.0, 7.1, 7.2]
all:
build_dep: [zlib1g-dev]
memcached:
enabled: "{{ php_all_versions }}"
5.4:
alt_name: memcached-2.2.0
5.5:
alt_name: memcached-2.2.0
5.6:
alt_name: memcached-2.2.0
all:
build_dep: [zlib1g-dev, libmemcached-dev]
run_dep: [libmemcachedutil2]
mongodb:
enabled: "{{ php_all_versions }}"
5.4:
alt_name: mongodb-1.2.11
build_dep: [libssl-dev]
msgpack:
enabled: "{{ php_all_versions }}"
5.4:
alt_name: msgpack-0.5.7
5.5:
alt_name: msgpack-0.5.7
5.6:
alt_name: msgpack-0.5.7
redis:
enabled: "{{ php_all_versions }}"
swoole:
enabled: "{{ php_all_versions }}"
5.4:
alt_name: swoole-1.9.23
5.5:
alt_name: swoole-1.9.23
5.6:
alt_name: swoole-1.9.23
7.2:
run_dep: [libnghttp2-14]
all:
build_dep: [libnghttp2-dev, libssl-dev, libnghttp2-5]
run_dep: [libnghttp2-5]
uploadprogress:
enabled: "{{ php_all_versions }}"
disabled: [7.2, 7.1, 7.0]
xdebug:
enabled: "{{ php_all_versions }}"
5.4:
alt_name: xdebug-2.4.1
5.5:
alt_name: xdebug-2.5.5
5.6:
alt_name: xdebug-2.5.5
###
### PHP Built-in Modules to enable
###
### will use e.g. 5.6 for PHP 5.6 as specific configuration
### or if not available, use all
###
### module-name:
### enabled: [ what php versions it is enabled for]
### disabled: [ what php versions it is disabled for] (precedence over enabled)
### '5.6':
### command: command to execute prior installation
### configure: custom configure command
### build_dep:
### run_dep:
### all:
### command:
### configure:
### build_dep:
### run_dep:
###
php_builtin_extensions:
bcmath:
enabled: "{{ php_all_versions }}"
bz2:
enabled: "{{ php_all_versions }}"
all:
build_dep: [libbz2-dev]
calendar:
enabled: "{{ php_all_versions }}"
ctype:
enabled: "{{ php_all_versions }}"
curl:
enabled: "{{ php_all_versions }}"
all:
build_dep: [libcurl4-openssl-dev]
dba:
enabled: "{{ php_all_versions }}"
dom:
enabled: "{{ php_all_versions }}"
all:
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
enchant:
enabled: "{{ php_all_versions }}"
all:
build_dep: [libenchant-dev]
run_dep: [libenchant1c2a]
exif:
enabled: "{{ php_all_versions }}"
fileinfo:
enabled: "{{ php_all_versions }}"
filter:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # Available by default
ftp:
enabled: "{{ php_all_versions }}"
all:
configure: --with-openssl-dir
build_dep: [libssl-dev]
gd:
enabled: "{{ php_all_versions }}"
7.2:
configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv
build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev]
run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6]
7.1:
configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf
build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev]
run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp-dev]
7.0:
configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf
build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev]
run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp-dev]
all:
command: ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/
configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf
build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev]
run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6]
gettext:
enabled: "{{ php_all_versions }}"
gmp:
enabled: "{{ php_all_versions }}"
all:
command: ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/
build_dep: [libgmp-dev]
hash:
enabled: "{{ php_all_versions }}"
iconv:
enabled: "{{ php_all_versions }}"
imap:
enabled: "{{ php_all_versions }}"
all:
command: ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/
configure: --with-kerberos --with-imap-ssl --with-imap
build_dep: [libc-client-dev, libkrb5-dev, libcurl4-openssl-dev]
run_dep: [libc-client2007e]
interbase:
enabled: "{{ php_all_versions }}"
disabled: [5.4]
all:
build_dep: [libfbclient2, libib-util, firebird-dev]
run_dep: [libfbclient2]
intl:
enabled: "{{ php_all_versions }}"
7.2:
run_dep: [libicu57]
all:
build_dep: [libicu-dev]
run_dep: [libicu52]
json:
enabled: "{{ php_all_versions }}"
ldap:
enabled: "{{ php_all_versions }}"
all:
command: ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/
configure: --with-ldap --with-ldap-sasl
build_dep: [libldap2-dev, libsasl2-dev]
libxml:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # Available by default
mbstring:
enabled: "{{ php_all_versions }}"
mcrypt:
enabled: "{{ php_all_versions }}"
disabled: [7.2]
7.2:
build_dep: []
run_dep: []
all:
run_dep: [libmcrypt4]
build_dep: [libmcrypt-dev]
mysql:
enabled: "{{ php_all_versions }}"
disabled: [7.0, 7.1, 7.2]
mysqli:
enabled: "{{ php_all_versions }}"
disabled: [7.0, 7.1, 7.2]
mysqlnd:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # Available by default
oci8:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # TODO: Oracle library is missing
odbc:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # TODO: sqlext.h' not found!
opcache:
enabled: "{{ php_all_versions }}"
disabled: [5.4]
openssl:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # Available by default
pcntl:
enabled: "{{ php_all_versions }}"
pcre:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # Available by default
pdo:
enabled: "{{ php_all_versions }}"
pdo_dblib:
enabled: "{{ php_all_versions }}"
all:
command: ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/
build_dep: [freetds-dev]
run_dep: [libsybdb5]
pdo_firebird:
enabled: "{{ php_all_versions }}"
all:
build_dep: [libfbclient2, libib-util, firebird-dev]
run_dep: [libfbclient2]
pdo_mysql:
enabled: "{{ php_all_versions }}"
pdo_oci:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # TODO: Oracle library is missing
pdo_odbc:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # TODO: Build errors
pdo_pgsql:
enabled: "{{ php_all_versions }}"
all:
build_dep: [libpq-dev]
run_dep: [libpq5]
pdo_sqlite:
enabled: "{{ php_all_versions }}"
all:
build_dep: [libsqlite3-dev]
pgsql:
enabled: "{{ php_all_versions }}"
all:
build_dep: [libpq-dev]
run_dep: [libpq5]
phar:
enabled: "{{ php_all_versions }}"
all:
build_dep: [libssl-dev]
posix:
enabled: "{{ php_all_versions }}"
pspell:
enabled: "{{ php_all_versions }}"
all:
build_dep: [libpspell-dev]
run_dep: [libaspell15]
readline:
enabled: "{{ php_all_versions }}"
disabled: [5.4]
all:
build_dep: [libedit-dev, libreadline-dev]
recode:
enabled: "{{ php_all_versions }}"
all:
build_dep: [librecode-dev]
run_dep: [librecode0]
session:
enabled: "{{ php_all_versions }}"
all:
configure: --with-mm
build_dep: [libmm-dev]
shmop:
enabled: "{{ php_all_versions }}"
simplexml:
enabled: "{{ php_all_versions }}"
all:
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
snmp:
enabled: "{{ php_all_versions }}"
all:
configure: --with-openssl-dir
build_dep: [libssl-dev, libsnmp-dev, snmp]
run_dep: [snmp]
soap:
enabled: "{{ php_all_versions }}"
all:
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
sockets:
enabled: "{{ php_all_versions }}"
sodium:
enabled: "{{ php_all_versions }}"
disabled: [5.4, 5.5, 5.6, 7.0, 7.1]
all:
build_dep: [libsodium-dev]
spl:
enabled: "{{ php_all_versions }}"
disabled: "{{ php_all_versions }}" # TODO: Did not work
sysvmsg:
enabled: "{{ php_all_versions }}"
sysvsem:
enabled: "{{ php_all_versions }}"
sysvshm:
enabled: "{{ php_all_versions }}"
tidy:
enabled: "{{ php_all_versions }}"
7.2:
run_dep: [libtidy5]
all:
build_dep: [libtidy-dev]
run_dep: [libtidy-0.99-0]
tokenizer:
enabled: "{{ php_all_versions }}"
wddx:
enabled: "{{ php_all_versions }}"
all:
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
xml:
enabled: "{{ php_all_versions }}"
all:
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
xmlreader:
enabled: "{{ php_all_versions }}"
disabled: [7.0, 7.1, 7.2] # build errors
all:
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
xmlrpc:
enabled: "{{ php_all_versions }}"
all:
configure: --with-libxml-dir=/usr --with-iconv-dir=/usr
build_dep: [libxml2-dev]
xmlwriter:
enabled: "{{ php_all_versions }}"
all:
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
xsl:
enabled: "{{ php_all_versions }}"
all:
build_dep: [libxslt-dev]
run_dep: [libxslt1.1]
zip:
enabled: "{{ php_all_versions }}"
5.4:
configure: --with-zlib-dir=/usr --with-pcre-dir=/usr
build_dep: [zlib1g-dev]
run_dep: []
5.5:
configure: --with-zlib-dir=/usr --with-pcre-dir=/usr
build_dep: [zlib1g-dev]
run_dep: []
7.2:
run_dep: [libzip4]
all:
configure: --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip
build_dep: [zlib1g-dev, libzip-dev]
run_dep: [libzip2]

7
build/ansible/inventory Normal file
View File

@@ -0,0 +1,7 @@
[php]
php-5.4 php_version=5.4 ansible_connection=local
php-5.5 php_version=5.5 ansible_connection=local
php-5.6 php_version=5.6 ansible_connection=local
php-7.0 php_version=7.0 ansible_connection=local
php-7.1 php_version=7.1 ansible_connection=local
php-7.2 php_version=7.2 ansible_connection=local

View File

@@ -0,0 +1,5 @@
---
template_files: []
# - src:
# dst:

View File

@@ -0,0 +1,10 @@
---
- name: render template
template:
src: "{{ item.src }}"
dest: "{{ item.dst }}"
force: True
mode: 0644
with_items:
- "{{ template_files }}"

45
build/gen-readme.sh Executable file
View File

@@ -0,0 +1,45 @@
#!/bin/sh
set -e
set -u
set -x
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
get_modules() {
tag="${1}"
PHP_MODULES="$( docker run -it --entrypoint=php devilbox/php-fpm:${tag} -m )"
PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/^\[.*//g' )" # Remove PHP Modules headlines
PHP_MODULES="$( echo "${PHP_MODULES}" | sort -fu )" # Unique
PHP_MODULES="$( echo "${PHP_MODULES}" | sed '/^\s*$/d' )" # Remove empty lines
PHP_MODULES="$( echo "${PHP_MODULES}" | tr '\r\n' ',' )" # Newlines to commas
PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/,,/,/g' )" # Remove PHP Modules headlines
PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/,$//g' )" # Remove trailing comma
PHP_MODULES="$( echo "${PHP_MODULES}" | sed 's/,/, /g' )" # Add space to comma
echo "${PHP_MODULES}"
}
sed -i'' "s|<td id=\"54-base\">.*<\/td>|<td id=\"54-base\">$( get_modules "5.4-base" )<\/td>|g" "${CWD}/../README.md"
sed -i'' "s|<td id=\"54-mods\">.*<\/td>|<td id=\"54-mods\">$( get_modules "5.4-mods" )<\/td>|g" "${CWD}/../README.md"
sed -i'' "s|<td id=\"55-base\">.*<\/td>|<td id=\"55-base\">$( get_modules "5.5-base" )<\/td>|g" "${CWD}/../README.md"
sed -i'' "s|<td id=\"55-mods\">.*<\/td>|<td id=\"55-mods\">$( get_modules "5.5-mods" )<\/td>|g" "${CWD}/../README.md"
sed -i'' "s|<td id=\"56-base\">.*<\/td>|<td id=\"56-base\">$( get_modules "5.6-base" )<\/td>|g" "${CWD}/../README.md"
sed -i'' "s|<td id=\"56-mods\">.*<\/td>|<td id=\"56-mods\">$( get_modules "5.6-mods" )<\/td>|g" "${CWD}/../README.md"
sed -i'' "s|<td id=\"70-base\">.*<\/td>|<td id=\"70-base\">$( get_modules "7.0-base" )<\/td>|g" "${CWD}/../README.md"
sed -i'' "s|<td id=\"70-mods\">.*<\/td>|<td id=\"70-mods\">$( get_modules "7.0-mods" )<\/td>|g" "${CWD}/../README.md"
sed -i'' "s|<td id=\"71-base\">.*<\/td>|<td id=\"71-base\">$( get_modules "7.1-base" )<\/td>|g" "${CWD}/../README.md"
sed -i'' "s|<td id=\"71-mods\">.*<\/td>|<td id=\"71-mods\">$( get_modules "7.1-mods" )<\/td>|g" "${CWD}/../README.md"
sed -i'' "s|<td id=\"72-base\">.*<\/td>|<td id=\"72-base\">$( get_modules "7.2-base" )<\/td>|g" "${CWD}/../README.md"
sed -i'' "s|<td id=\"72-mods\">.*<\/td>|<td id=\"72-mods\">$( get_modules "7.2-mods" )<\/td>|g" "${CWD}/../README.md"