mirror of
https://github.com/devilbox/docker-php-fpm.git
synced 2025-12-10 11:01:14 +00:00
REL-0.1 Initial Release
This commit is contained in:
74
.gitignore
vendored
Executable file
74
.gitignore
vendored
Executable 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
|
||||
320
.travis.yml
320
.travis.yml
@@ -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
|
||||
script:
|
||||
- echo "${v}-base"
|
||||
- stage: mods
|
||||
script:
|
||||
- echo "${v}-mods"
|
||||
- stage: prod
|
||||
script:
|
||||
- echo "${v}-prod"
|
||||
- stage: work
|
||||
script:
|
||||
- echo "${v}-work"
|
||||
# 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
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#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
|
||||
|
||||
71
Dockerfiles/base/Dockerfile-5.4
Normal file
71
Dockerfiles/base/Dockerfile-5.4
Normal 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"]
|
||||
71
Dockerfiles/base/Dockerfile-5.5
Normal file
71
Dockerfiles/base/Dockerfile-5.5
Normal 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"]
|
||||
71
Dockerfiles/base/Dockerfile-5.6
Normal file
71
Dockerfiles/base/Dockerfile-5.6
Normal 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"]
|
||||
71
Dockerfiles/base/Dockerfile-7.0
Normal file
71
Dockerfiles/base/Dockerfile-7.0
Normal 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"]
|
||||
71
Dockerfiles/base/Dockerfile-7.1
Normal file
71
Dockerfiles/base/Dockerfile-7.1
Normal 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"]
|
||||
71
Dockerfiles/base/Dockerfile-7.2
Normal file
71
Dockerfiles/base/Dockerfile-7.2
Normal 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"]
|
||||
140
Dockerfiles/base/data/docker-entrypoint.d/00-base-libs.sh
Executable file
140
Dockerfiles/base/data/docker-entrypoint.d/00-base-libs.sh
Executable 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
|
||||
22
Dockerfiles/base/data/docker-entrypoint.d/01-debug.sh
Executable file
22
Dockerfiles/base/data/docker-entrypoint.d/01-debug.sh
Executable 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
|
||||
}
|
||||
104
Dockerfiles/base/data/docker-entrypoint.d/02-uid-gid.sh
Executable file
104
Dockerfiles/base/data/docker-entrypoint.d/02-uid-gid.sh
Executable 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
|
||||
51
Dockerfiles/base/data/docker-entrypoint.sh
Executable file
51
Dockerfiles/base/data/docker-entrypoint.sh
Executable 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
|
||||
5
Dockerfiles/base/data/php-fpm.conf
Normal file
5
Dockerfiles/base/data/php-fpm.conf
Normal 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
|
||||
24
Dockerfiles/base/data/php-fpm.d/devilbox.conf
Normal file
24
Dockerfiles/base/data/php-fpm.d/devilbox.conf
Normal 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
|
||||
388
Dockerfiles/mods/Dockerfile-5.4
Normal file
388
Dockerfiles/mods/Dockerfile-5.4
Normal 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"]
|
||||
402
Dockerfiles/mods/Dockerfile-5.5
Normal file
402
Dockerfiles/mods/Dockerfile-5.5
Normal 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"]
|
||||
404
Dockerfiles/mods/Dockerfile-5.6
Normal file
404
Dockerfiles/mods/Dockerfile-5.6
Normal 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"]
|
||||
394
Dockerfiles/mods/Dockerfile-7.0
Normal file
394
Dockerfiles/mods/Dockerfile-7.0
Normal 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"]
|
||||
394
Dockerfiles/mods/Dockerfile-7.1
Normal file
394
Dockerfiles/mods/Dockerfile-7.1
Normal 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"]
|
||||
399
Dockerfiles/mods/Dockerfile-7.2
Normal file
399
Dockerfiles/mods/Dockerfile-7.2
Normal 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"]
|
||||
89
Dockerfiles/prod/Dockerfile-5.4
Normal file
89
Dockerfiles/prod/Dockerfile-5.4
Normal 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"]
|
||||
89
Dockerfiles/prod/Dockerfile-5.5
Normal file
89
Dockerfiles/prod/Dockerfile-5.5
Normal 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"]
|
||||
89
Dockerfiles/prod/Dockerfile-5.6
Normal file
89
Dockerfiles/prod/Dockerfile-5.6
Normal 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"]
|
||||
89
Dockerfiles/prod/Dockerfile-7.0
Normal file
89
Dockerfiles/prod/Dockerfile-7.0
Normal 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"]
|
||||
89
Dockerfiles/prod/Dockerfile-7.1
Normal file
89
Dockerfiles/prod/Dockerfile-7.1
Normal 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"]
|
||||
89
Dockerfiles/prod/Dockerfile-7.2
Normal file
89
Dockerfiles/prod/Dockerfile-7.2
Normal 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"]
|
||||
60
Dockerfiles/prod/data/docker-entrypoint.d/30-timezone.sh
Executable file
60
Dockerfiles/prod/data/docker-entrypoint.d/30-timezone.sh
Executable 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
|
||||
71
Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh
Executable file
71
Dockerfiles/prod/data/docker-entrypoint.d/31-postfix.sh
Executable 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
|
||||
116
Dockerfiles/prod/data/docker-entrypoint.d/32-docker-logs.sh
Executable file
116
Dockerfiles/prod/data/docker-entrypoint.d/32-docker-logs.sh
Executable 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
|
||||
204
Dockerfiles/prod/data/docker-entrypoint.d/33-socat-port-forwarding.sh
Executable file
204
Dockerfiles/prod/data/docker-entrypoint.d/33-socat-port-forwarding.sh
Executable 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
|
||||
58
Dockerfiles/prod/data/docker-entrypoint.d/34-custom-ini-files.sh
Executable file
58
Dockerfiles/prod/data/docker-entrypoint.d/34-custom-ini-files.sh
Executable 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
|
||||
60
Dockerfiles/prod/data/docker-entrypoint.d/35-supervisor.sh
Executable file
60
Dockerfiles/prod/data/docker-entrypoint.d/35-supervisor.sh
Executable 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
|
||||
}
|
||||
132
Dockerfiles/prod/data/docker-entrypoint.sh
Executable file
132
Dockerfiles/prod/data/docker-entrypoint.sh
Executable 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
|
||||
95
Dockerfiles/prod/data/postfix.sh
Executable file
95
Dockerfiles/prod/data/postfix.sh
Executable 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}"
|
||||
9
Dockerfiles/prod/data/supervisord.conf
Normal file
9
Dockerfiles/prod/data/supervisord.conf
Normal 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
21
LICENSE.md
Normal 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.
|
||||
73
build/ansible/DOCKERFILES/Dockerfile-base.j2
Normal file
73
build/ansible/DOCKERFILES/Dockerfile-base.j2
Normal 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"]
|
||||
349
build/ansible/DOCKERFILES/Dockerfile-mods.j2
Normal file
349
build/ansible/DOCKERFILES/Dockerfile-mods.j2
Normal 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"]
|
||||
91
build/ansible/DOCKERFILES/Dockerfile-prod.j2
Normal file
91
build/ansible/DOCKERFILES/Dockerfile-prod.j2
Normal 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
6
build/ansible/README.md
Normal file
@@ -0,0 +1,6 @@
|
||||
Ansible is used to generate Dockerfiles
|
||||
|
||||
|
||||
```bash
|
||||
ansible-playbook generate.yml
|
||||
```
|
||||
3
build/ansible/ansible.cfg
Normal file
3
build/ansible/ansible.cfg
Normal file
@@ -0,0 +1,3 @@
|
||||
[defaults]
|
||||
roles_path = ./roles
|
||||
inventory = inventory
|
||||
8
build/ansible/generate.yml
Normal file
8
build/ansible/generate.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
|
||||
- hosts: all
|
||||
gather_facts: False
|
||||
roles:
|
||||
- template
|
||||
tags:
|
||||
- template
|
||||
479
build/ansible/group_vars/all.yml
Normal file
479
build/ansible/group_vars/all.yml
Normal 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
7
build/ansible/inventory
Normal 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
|
||||
5
build/ansible/roles/template/defaults/main.yml
Normal file
5
build/ansible/roles/template/defaults/main.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
|
||||
template_files: []
|
||||
# - src:
|
||||
# dst:
|
||||
10
build/ansible/roles/template/tasks/main.yml
Normal file
10
build/ansible/roles/template/tasks/main.yml
Normal 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
45
build/gen-readme.sh
Executable 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"
|
||||
|
||||
Reference in New Issue
Block a user