diff --git a/.base-php b/.base-php
new file mode 100644
index 00000000..fd4804ed
--- /dev/null
+++ b/.base-php
@@ -0,0 +1,3 @@
+7.4.5#2020-04-17T18:36:31.016606Z
+7.3.3#2020-04-17T18:36:53.477668Z
+7.2.16#2020-04-17T18:36:17.094345Z
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 115d82ac..0034c35e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,48 +1,37 @@
language: bash
-sudo: required
-
services:
- docker
env:
global:
- - DOCKER_COMPOSE_VERSION=1.14.0
- - DOCKER_VERSION=17.06.2
- - LATEST_PHP_VER=7.1
+ - PHP74=7.4.5
+ - PHP73=7.3.17
+ - PHP72=7.2.29
matrix:
- - PHP_VER=7.1 PHP_DEBUG=0
- - PHP_VER=7.0 PHP_DEBUG=0
- - PHP_VER=5.6 PHP_DEBUG=0
- - PHP_VER=5.3 PHP_DEBUG=0
- - PHP_VER=7.1 PHP_DEBUG=1
- - PHP_VER=7.0 PHP_DEBUG=1
- - PHP_VER=5.6 PHP_DEBUG=1
-
-install:
- - sudo apt-get update
- - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce="${DOCKER_VERSION}~ce-0~ubuntu"
- - sudo rm /usr/local/bin/docker-compose
- - curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" > docker-compose
- - chmod +x docker-compose
- - sudo mv docker-compose /usr/local/bin
+ - PHP_VER="${PHP74}" TAGS=7.4,7,latest
+ - PHP_VER="${PHP73}" TAGS=7.3
+ - PHP_VER="${PHP72}" TAGS=7.2
+ - PHP_VER="${PHP74}" PHP_DEV=1 TAGS=7.4-dev,7-dev,dev
+ - PHP_VER="${PHP73}" PHP_DEV=1 TAGS=7.3-dev
+ - PHP_VER="${PHP72}" PHP_DEV=1 TAGS=7.2-dev
+ - PHP_VER="${PHP74}" PHP_DEV=1 WODBY_USER_ID=501 WODBY_GROUP_ID=20 TAGS=7.4-dev-macos,7-dev-macos,dev-macos
+ - PHP_VER="${PHP73}" PHP_DEV=1 WODBY_USER_ID=501 WODBY_GROUP_ID=20 TAGS=7.3-dev-macos
+ - PHP_VER="${PHP72}" PHP_DEV=1 WODBY_USER_ID=501 WODBY_GROUP_ID=20 TAGS=7.2-dev-macos
script:
- - cd ./"${PHP_VER}"
- - travis_retry make && make test
-
-after_success: |
- if [[ "${TRAVIS_PULL_REQUEST}" == "false" && ("${TRAVIS_BRANCH}" == "master" || -n "${TRAVIS_TAG}") ]]; then
- docker login -u "${DOCKER_USERNAME}" -p "${DOCKER_PASSWORD}"
- make release
+- set -e
+- cd "${PHP_VER:0:1}" || cd "${PHP_VER:0:3}"
+- make check-configs
+- travis_retry make
+- make test
- if [[ -n "${TRAVIS_TAG}" ]]; then
- make release TAG="${DRUPAL}-${PHP_VER}-${TRAVIS_TAG}"
- elif [[ "${PHP_VER}" == "${LATEST_PHP_VER}" && "${PHP_DEBUG}" == 0 ]]; then
- make release TAG="latest"
- fi
- fi
+after_success:
+- . "${TRAVIS_BUILD_DIR}/release.sh"
notifications:
- slack:
- secure: "Z/uc2jwlK/Kf6WJRyWIcofKgq9kCau+/RMe0NZYbLTVY0cwqIIOfQvVqWwjIZZNly5wUx0w+XlXDVWD0JVeTJFr/TZxpCObUaMzC0hEj4D59LsDkZ509i07QvuSVBNCqXuHoiXM5Ea7UvJkRRNpVohwqUpoVQ18hQ5++kuTMHW//wtHfbM7k/tkI5S/lWm/RulIdA2/txIFB0UiRGlIcLNJCVVSDELAnyC7sugbMw02Gq6epnTtjjMJKWN/5PyCe3YtTo7mut9xIaRMkrSNtA/24HdzY1OjOjw5YTtgfIzq5vHipQtf49tqMj74BOUjq3y7noFwxHxhwtmK8UnzKgrDnBFO8A7d4yWnErHgmEga/LNoKY3TvtIvsv4lfRh0LKqXv4B48DTJXTxmUIEHsVpBBG+ec5LZqYcCq+aM8QdvB+9gCrE8e+5vJKAJfd+za0jCLqY+ooxslPblntNsWIbvYyvvMKdzUfjAs/F1TIynR7gXU58QykJo/i+3KjFN+JHfLF5wJ/E8jbZXhbrmFZOVTn0IOqP5jPzxVsR0X5YSHIBD2iOujUFwklQYnWFBFMtZtKaNkHF+/KE5SyKlcjr4+qmeD2+mjHnzN1pPzq8dHwyqugQt7kkOgLptrHp2a9nfuVDWYeL/cuhkosDvY4NaESOi25/+qhv2wVNL7LBs="
\ No newline at end of file
+ email:
+ recipients:
+ - travisci@wodby.com
+ on_success: never
+ on_failure: always
diff --git a/5.3/Dockerfile b/5.3/Dockerfile
deleted file mode 100644
index 2bb298d3..00000000
--- a/5.3/Dockerfile
+++ /dev/null
@@ -1,386 +0,0 @@
-FROM wodby/alpine:3.4
-
-# persistent / runtime deps
-ENV PHPIZE_DEPS \
- autoconf \
- file \
- g++ \
- gcc \
- libc-dev \
- make \
- pkgconf \
- re2c
-RUN apk add --no-cache --virtual .persistent-deps \
- ca-certificates \
- curl \
- tar \
- xz
-
-# ensure www-data user exists
-RUN set -x \
- && addgroup -g 82 -S www-data \
- && adduser -u 82 -D -S -s /bin/bash -G www-data www-data \
- && sed -i '/^www-data/s/!/*/' /etc/shadow \
- && echo "PS1='\w\$ '" >> /home/www-data/.bashrc
-# 82 is the standard uid/gid for "www-data" in Alpine
-# http://git.alpinelinux.org/cgit/aports/tree/main/apache2/apache2.pre-install?h=v3.3.2
-# http://git.alpinelinux.org/cgit/aports/tree/main/lighttpd/lighttpd.pre-install?h=v3.3.2
-# http://git.alpinelinux.org/cgit/aports/tree/main/nginx-initscripts/nginx-initscripts.pre-install?h=v3.3.2
-
-ENV PHP_INI_DIR /usr/local/etc/php
-RUN mkdir -p $PHP_INI_DIR/conf.d
-
-####
-ENV PHP_EXTRA_CONFIGURE_ARGS --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data
-####
-
-# Apply stack smash protection to functions using local buffers and alloca()
-# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64)
-# Enable optimization (-O2)
-# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default)
-# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated)
-# https://github.com/docker-library/php/issues/272
-ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2"
-ENV PHP_CPPFLAGS="$PHP_CFLAGS"
-ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie"
-
-ENV GPG_KEYS 0B96609E270F565C13292B24C13C70B87267B52D 0A95E9A026542D53835E3F3A7DEC4E69FC9C83D7 0E604491
-
-ENV PHP_VERSION 5.3.29
-ENV PHP_URL="https://secure.php.net/get/php-5.3.29.tar.xz/from/this/mirror" PHP_ASC_URL="https://secure.php.net/get/php-5.3.29.tar.xz.asc/from/this/mirror"
-ENV PHP_SHA256="8438c2f14ab8f3d6cd2495aa37de7b559e33b610f9ab264f0c61b531bf0c262d" PHP_MD5="dcff9c881fe436708c141cfc56358075"
-
-RUN set -xe; \
- \
- apk add --no-cache --virtual .fetch-deps \
- gnupg \
- openssl \
- ; \
- \
- mkdir -p /usr/src; \
- cd /usr/src; \
- \
- wget -O php.tar.xz "$PHP_URL"; \
- \
- if [ -n "$PHP_SHA256" ]; then \
- echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \
- fi; \
- if [ -n "$PHP_MD5" ]; then \
- echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \
- fi; \
- \
- if [ -n "$PHP_ASC_URL" ]; then \
- wget -O php.tar.xz.asc "$PHP_ASC_URL"; \
- export GNUPGHOME="$(mktemp -d)"; \
- for key in $GPG_KEYS; do \
- gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
- done; \
- gpg --batch --verify php.tar.xz.asc php.tar.xz; \
- rm -r "$GNUPGHOME"; \
- fi; \
- \
- apk del .fetch-deps
-
-COPY docker-php-source /usr/local/bin/
-
-RUN set -xe \
- && apk add --no-cache --virtual .build-deps \
- $PHPIZE_DEPS \
- curl-dev \
- libedit-dev \
- libxml2-dev \
- openssl-dev \
- sqlite-dev \
- \
- && export CFLAGS="$PHP_CFLAGS" \
- CPPFLAGS="$PHP_CPPFLAGS" \
- LDFLAGS="$PHP_LDFLAGS" \
- && docker-php-source extract \
- && cd /usr/src/php \
- && ./configure \
- --with-config-file-path="$PHP_INI_DIR" \
- --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \
- \
- --disable-cgi \
- \
-# --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236)
- --enable-ftp \
-# --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
- --enable-mbstring \
-# --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
- --enable-mysqlnd \
- \
- --with-curl \
- --with-libedit \
- --with-openssl \
- --with-zlib \
- \
- $PHP_EXTRA_CONFIGURE_ARGS \
- && make -j "$(getconf _NPROCESSORS_ONLN)" \
- && make install \
- && { find /usr/local/bin /usr/local/sbin -type f -perm +0111 -exec strip --strip-all '{}' + || true; } \
- && make clean \
- && docker-php-source delete \
- \
- && runDeps="$( \
- scanelf --needed --nobanner --recursive /usr/local \
- | awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \
- | sort -u \
- | xargs -r apk info --installed \
- | sort -u \
- )" \
- && apk add --no-cache --virtual .php-rundeps $runDeps \
- \
- && apk del .build-deps
-
-COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
-
-RUN set -ex \
- && cd /usr/local/etc \
- && if [ -d php-fpm.d ]; then \
- # for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf"
- sed 's!=NONE/!=!g' php-fpm.conf.default | tee php-fpm.conf > /dev/null; \
- cp php-fpm.d/www.conf.default php-fpm.d/www.conf; \
- else \
- # PHP 5.x doesn't use "include=" by default, so we'll create our own simple config that mimics PHP 7+ for consistency
- mkdir php-fpm.d; \
- cp php-fpm.conf.default php-fpm.d/www.conf; \
- { \
- echo '[global]'; \
- echo 'include=etc/php-fpm.d/*.conf'; \
- } | tee php-fpm.conf; \
- fi \
- && { \
- echo '[global]'; \
- echo 'error_log = /proc/self/fd/2'; \
- echo; \
- echo '[www]'; \
- echo '; if we send this to /proc/self/fd/1, it never appears'; \
- echo 'access.log = /proc/self/fd/2'; \
- echo; \
- echo '; Ensure worker stdout and stderr are sent to the main error log.'; \
- echo 'catch_workers_output = yes'; \
- } | tee php-fpm.d/docker.conf \
- && { \
- echo '[global]'; \
- echo 'daemonize = no'; \
- echo; \
- echo '[www]'; \
- echo 'listen = 0.0.0.0:9000'; \
- } | tee php-fpm.d/zz-docker.conf \
- && sed -i '/listen = 127.0.0.1:9000/d' php-fpm.d/www.conf
-
-# INSTALLING EXTENSIONS
-
-ENV SSHD_PERMIT_USER_ENV="yes" \
- PHP_UNIT_VER="4.8" \
- RABBITMQ_C_VER="0.8.0" \
- WALTER_VER="1.3.0" \
-
- # Imagick missing because of bug in imagemagick library.
- EXT_AMQP_VER="1.8.0" \
- EXT_APCU_VER="4.0.11" \
- EXT_MEMCACHED_VER="2.2.0" \
- EXT_MONGO_VER="1.6.16" \
- EXT_OAUTH_VER="1.2.3" \
- EXT_UPLOADPROGRESS_VER="1.0.3.1" \
- EXT_XDEBUG_VER="2.2.7" \
- EXT_YAML_VER="1.3.1" \
- EXT_OPCACHE_VER="7.0.5"
-
-ENV WALTER_URL="https://github.com/walter-cd/walter/releases/download/v${WALTER_VER}/walter_${WALTER_VER}_linux_amd64.tar.gz" \
- RABBITMQ_C_URL="https://github.com/alanxz/rabbitmq-c/releases/download/v${RABBITMQ_C_VER}/rabbitmq-c-${RABBITMQ_C_VER}.tar.gz" \
-
- APP_ROOT="/var/www/html" \
- PATH="/home/www-data/.composer/vendor/bin:${PATH}"
-
-RUN set -xe && \
-
- apk add --update --no-cache --virtual .php-rundeps \
- bzip2 \
- c-client \
- fcgi \
- freetype \
- git \
- icu-libs \
- imap \
- less \
- libbz2 \
- libjpeg-turbo \
- libltdl \
- libmemcached-libs \
- libmcrypt \
- libpng \
- libxslt \
- make \
- mariadb-client \
- mariadb-client-libs \
- nano \
- openssh \
- openssh-client \
- openssl \
- patch \
- postgresql-client \
- rsync \
- su-exec \
- sudo \
- tig \
- tmux \
- yaml && \
-
- apk add --update --no-cache --virtual .build-deps \
- autoconf \
- cmake \
- build-base \
- bzip2-dev \
- freetype-dev \
- icu-dev \
- imap-dev \
- jpeg-dev \
- libjpeg-turbo-dev \
- libmemcached-dev \
- libmcrypt-dev \
- libpng-dev \
- libtool \
- libxslt-dev \
- mariadb-dev \
- openldap-dev \
- pcre-dev \
- postgresql-dev \
- yaml-dev && \
-
- docker-php-source extract && \
-
- docker-php-ext-install \
- bcmath \
- bz2 \
- calendar \
- exif \
- imap \
- intl \
- ldap \
- mcrypt \
- mysql \
- mysqli \
- pcntl \
- pdo_mysql \
- pdo_pgsql \
- pgsql \
- phar \
- soap \
- sockets \
- xmlrpc \
- xsl \
- zip && \
-
- # GD
- docker-php-ext-configure gd \
- --with-gd \
- --with-freetype-dir=/usr/include/ \
- --with-png-dir=/usr/include/ \
- --with-jpeg-dir=/usr/include/ && \
- NPROC=$(getconf _NPROCESSORS_ONLN) && \
- docker-php-ext-install -j${NPROC} gd && \
-
- # RabbitMQ C client
- wget -qO- ${RABBITMQ_C_URL} | tar xz -C /tmp/ && \
- cd /tmp/rabbitmq-c-${RABBITMQ_C_VER} && \
- mkdir -p build && cd build && \
- cmake .. \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_C_FLAGS="${CFLAGS}" && \
- cmake --build . --target install && \
-
- # PECL extensions
- pecl config-set php_ini "${PHP_INI_DIR}/php.ini" && \
-
- pecl install \
- amqp-${EXT_AMQP_VER} \
- apcu-${EXT_APCU_VER} \
- memcached-${EXT_MEMCACHED_VER} \
- mongo-${EXT_MONGO_VER} \
- oauth-${EXT_OAUTH_VER} \
- uploadprogress-${EXT_UPLOADPROGRESS_VER} \
- xdebug-${EXT_XDEBUG_VER} \
- yaml-${EXT_YAML_VER} \
- ZendOpcache-${EXT_OPCACHE_VER} && \
-
- docker-php-ext-enable \
- amqp \
- apcu \
- memcached \
- mongo \
- oauth \
- opcache \
- uploadprogress \
- xdebug \
- yaml && \
-
- # Install composer
- wget -qO- https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && \
-
- # Install PHPUnit
- wget -qO- https://phar.phpunit.de/phpunit-${PHP_UNIT_VER}.phar > /usr/local/bin/phpunit && \
- chmod +x /usr/local/bin/phpunit && \
-
- # Install Walter tool
- wget -qO- ${WALTER_URL} | tar xz -C /tmp/ && \
- mv /tmp/walter_linux_amd64/walter /usr/local/bin && \
-
- # Add composer bins to $PATH
- su-exec www-data echo "export PATH=/home/www-data/.composer/vendor/bin:${PATH}" > /home/www-data/.profile && \
-
- # Configure sudoers
- { \
- echo -n 'www-data ALL=(root) NOPASSWD:SETENV: ' ; \
- echo -n '/usr/local/bin/sshd-generate-keys.sh, ' ; \
- echo -n '/usr/local/bin/fix-permissions.sh, ' ; \
- echo -n '/usr/sbin/sshd, ' ; \
- echo "/usr/sbin/crond" ; \
- } | tee /etc/sudoers.d/www-data && \
-
- # Configure ldap
- echo "TLS_CACERTDIR /etc/ssl/certs/" >> /etc/openldap/ldap.conf && \
-
- # We run php-fpm as non root
- sed -i '/^user = www-data/d;/^group = www-data/d' /usr/local/etc/php-fpm.d/www.conf* && \
-
- # Create required directories and fix permissions
- mkdir -p ${APP_ROOT} && \
- su-exec www-data mkdir /home/www-data/.ssh && \
-
- touch /etc/ssh/sshd_config && \
- chown www-data: /etc/ssh/sshd_config && \
-
- rm /etc/crontabs/root && \
- touch /etc/crontabs/www-data && \
- chown root:www-data /etc/crontabs/www-data && \
- chmod 660 /etc/crontabs/www-data && \
-
- chown -R www-data:www-data /var/www "${PHP_INI_DIR}/conf.d" /usr/local/etc/php-fpm.d/ /home/www-data/.profile && \
-
- # Cleanup
- docker-php-source delete && \
- apk del .build-deps && \
- pecl clear-cache && \
-
- rm -rf \
- /usr/src/php.tar.xz \
- /usr/include/php \
- /usr/lib/php/build \
- /tmp/* \
- /root/.composer
-
-USER www-data
-
-WORKDIR ${APP_ROOT}
-EXPOSE 9000
-
-COPY templates /etc/gotpl/
-COPY docker-entrypoint.sh /
-COPY actions /usr/local/bin/
-COPY php.ini ${PHP_INI_DIR}
-
-ENTRYPOINT ["/docker-entrypoint.sh"]
-CMD ["php-fpm"]
diff --git a/5.3/Makefile b/5.3/Makefile
deleted file mode 100644
index a9744962..00000000
--- a/5.3/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
--include env_make
-
-PHP_VER ?= 5.3
-TAG ?= $(PHP_VER)
-
-REPO = wodby/php
-NAME = php-$(PHP_VER)
-
-.PHONY: build test push shell run start stop logs clean release
-
-default: build
-
-build:
- docker build -t $(REPO):$(TAG) ./
-
-test:
- IMAGE=$(REPO):$(TAG) ./test.sh
-
-push:
- docker push $(REPO):$(TAG)
-
-shell:
- docker run --rm --name $(NAME) -i -t $(PORTS) $(VOLUMES) $(ENV) $(REPO):$(TAG) /bin/bash
-
-run:
- docker run --rm --name $(NAME) $(PORTS) $(VOLUMES) $(ENV) $(REPO):$(TAG) $(CMD)
-
-start:
- docker run -d --name $(NAME) $(PORTS) $(VOLUMES) $(ENV) $(REPO):$(TAG)
-
-stop:
- docker stop $(NAME)
-
-logs:
- docker logs $(NAME)
-
-clean:
- -docker rm -f $(NAME)
-
-release: build push
diff --git a/5.3/actions/actions.mk b/5.3/actions/actions.mk
deleted file mode 100644
index 73a9c9f6..00000000
--- a/5.3/actions/actions.mk
+++ /dev/null
@@ -1,37 +0,0 @@
-.PHONY: git-clone git-checkout walter check-ready check-live
-
-check_defined = \
- $(strip $(foreach 1,$1, \
- $(call __check_defined,$1,$(strip $(value 2)))))
-__check_defined = \
- $(if $(value $1),, \
- $(error Required parameter is missing: $1$(if $2, ($2))))
-
-host ?= localhost
-max_try ?= 1
-wait_seconds ?= 1
-delay_seconds ?= 0
-is_hash ?= 0
-branch = ""
-# Some symbols in env vars break cgi-fcgi
-command ?= env -i SCRIPT_NAME="/ping" SCRIPT_FILENAME="/ping" REQUEST_METHOD=GET cgi-fcgi -bind -connect "${host}":9001 | grep -q "pong"
-service = PHP-FPM
-
-default: check-ready
-
-git-clone:
- $(call check_defined, url)
- git-clone.sh $(url) $(branch)
-
-git-checkout:
- $(call check_defined, target)
- git-checkout.sh $(target) $(is_hash)
-
-walter:
- walter.sh
-
-check-ready:
- wait-for.sh "$(command)" $(service) $(host) $(max_try) $(wait_seconds) $(delay_seconds)
-
-check-live:
- @echo "OK"
diff --git a/5.3/actions/sshd-generate-keys.sh b/5.3/actions/sshd-generate-keys.sh
deleted file mode 100755
index 5c0e79d4..00000000
--- a/5.3/actions/sshd-generate-keys.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-dir="${1:-/etc/ssh}"
-
-mkdir -p "${dir}"
-ssh-keygen -qb 2048 -t rsa -N "" -f "${dir}/ssh_host_rsa_key"
-chmod 0600 "${dir}/ssh_host_rsa_key"
-chmod 0644 "${dir}/ssh_host_rsa_key.pub"
diff --git a/5.3/actions/walter.sh b/5.3/actions/walter.sh
deleted file mode 100755
index e928d759..00000000
--- a/5.3/actions/walter.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-if [[ -f "${APP_ROOT}/wodby.yml" ]]; then
- walter -c "${APP_ROOT}/wodby.yml"
-fi
\ No newline at end of file
diff --git a/5.3/docker-entrypoint.sh b/5.3/docker-entrypoint.sh
deleted file mode 100755
index 7f968607..00000000
--- a/5.3/docker-entrypoint.sh
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-SSH_DIR=/home/www-data/.ssh
-
-_backwards_compatibility() {
- declare -A vars
- vars[PHP_APCU_ENABLE]="PHP_APCU_ENABLED"
- vars[PHP_FPM_SLOWLOG_TIMEOUT]="PHP_FPM_REQUEST_SLOWLOG_TIMEOUT"
- vars[PHP_FPM_MAX_CHILDREN]="PHP_FPM_PM_MAX_CHILDREN"
- vars[PHP_FPM_START_SERVERS]="PHP_FPM_PM_START_SERVERS"
- vars[PHP_FPM_MIN_SPARE_SERVERS]="PHP_FPM_PM_MIN_SPARE_SERVERS"
- vars[PHP_FPM_MAX_SPARE_SERVERS]="PHP_FPM_PM_MAX_SPARE_SERVERS"
- vars[PHP_FPM_MAX_REQUESTS]="PHP_FPM_PM_MAX_REQUESTS"
- vars[PHP_FPM_STATUS_PATH]="PHP_FPM_PM_STATUS_PATH"
-
- for i in "${!vars[@]}"; do
- export "$i"="${!vars[$i]}"
- done
-}
-
-exec_tpl() {
- if [[ -f "/etc/gotpl/$1" ]]; then
- gotpl "/etc/gotpl/$1" > "$2"
- fi
-}
-
-validate_dirs() {
- if [[ -n "${PHP_XDEBUG_TRACE_OUTPUT_DIR}" ]]; then
- mkdir -p "${PHP_XDEBUG_TRACE_OUTPUT_DIR}"
- fi
-
- if [[ -n "${PHP_XDEBUG_PROFILER_OUTPUT_DIR}" ]]; then
- mkdir -p "${PHP_XDEBUG_PROFILER_OUTPUT_DIR}"
- fi
-}
-
-init_ssh_client() {
- exec_tpl "ssh_config.tpl" "${SSH_DIR}/config"
-
- if [[ -n "${SSH_PRIVATE_KEY}" ]]; then
- exec_tpl "id_rsa.tpl" "${SSH_DIR}/id_rsa"
- chmod -f 600 "${SSH_DIR}/id_rsa"
- unset SSH_PRIVATE_KEY
- fi
-}
-
-init_sshd() {
- exec_tpl "sshd_config.tpl" "/etc/ssh/sshd_config"
-
- if [[ -n "${SSH_PUBLIC_KEYS}" ]]; then
- exec_tpl "authorized_keys.tpl" "${SSH_DIR}/authorized_keys"
- unset SSH_PUBLIC_KEYS
- fi
-
- printenv | xargs -I{} echo {} | awk ' \
- BEGIN { FS = "=" }; { \
- if ($1 != "HOME" \
- && $1 != "PWD" \
- && $1 != "PATH" \
- && $1 != "SHLVL") { \
- \
- print ""$1"="$2"" \
- } \
- }' > "${SSH_DIR}/environment"
-
- sudo sshd-generate-keys.sh "${SSHD_HOST_KEYS_DIR}"
-}
-
-init_crond() {
- exec_tpl "crontab.tpl" "/etc/crontabs/www-data"
-}
-
-process_templates() {
- _backwards_compatibility
-
- exec_tpl "docker-php.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php.ini"
- exec_tpl "docker-php-ext-opcache.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-opcache.ini"
- exec_tpl "docker-php-ext-xdebug.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-xdebug.ini"
- exec_tpl "zz-www.conf.tpl" "/usr/local/etc/php-fpm.d/zz-www.conf"
-
- sed -i '/^$/d' "${PHP_INI_DIR}/conf.d/docker-php-ext-xdebug.ini"
-}
-
-init_git() {
- git config --global user.email "${GIT_USER_EMAIL:-www-data@example.com}"
- git config --global user.name "${GIT_USER_NAME:-www-data}"
-}
-
-sudo fix-permissions.sh www-data www-data "${APP_ROOT}"
-validate_dirs
-init_ssh_client
-init_git
-process_templates
-
-if [[ "${@:1:2}" == "sudo /usr/sbin/sshd" ]]; then
- init_sshd
-elif [[ "${@:1:3}" == "sudo -E crond" ]]; then
- init_crond
-fi
-
-exec-init-scripts.sh
-
-if [[ $1 == "make" ]]; then
- exec "${@}" -f /usr/local/bin/actions.mk
-else
- exec /usr/local/bin/docker-php-entrypoint "${@}"
-fi
diff --git a/5.3/docker-php-entrypoint b/5.3/docker-php-entrypoint
deleted file mode 100755
index 86343d80..00000000
--- a/5.3/docker-php-entrypoint
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-set -e
-
-# first arg is `-f` or `--some-option`
-if [ "${1#-}" != "$1" ]; then
- set -- php-fpm "$@"
-fi
-
-exec "$@"
diff --git a/5.3/docker-php-ext-configure b/5.3/docker-php-ext-configure
deleted file mode 100755
index 93d31601..00000000
--- a/5.3/docker-php-ext-configure
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/bin/sh
-set -e
-
-# prefer user supplied CFLAGS, but default to our PHP_CFLAGS
-: ${CFLAGS:=$PHP_CFLAGS}
-: ${CPPFLAGS:=$PHP_CPPFLAGS}
-: ${LDFLAGS:=$PHP_LDFLAGS}
-export CFLAGS CPPFLAGS LDFLAGS
-
-srcExists=
-if [ -d /usr/src/php ]; then
- srcExists=1
-fi
-docker-php-source extract
-if [ -z "$srcExists" ]; then
- touch /usr/src/php/.docker-delete-me
-fi
-
-cd /usr/src/php/ext
-
-ext="$1"
-if [ -z "$ext" ] || [ ! -d "$ext" ]; then
- echo >&2 "usage: $0 ext-name [configure flags]"
- echo >&2 " ie: $0 gd --with-jpeg-dir=/usr/local/something"
- echo >&2
- echo >&2 'Possible values for ext-name:'
- find /usr/src/php/ext \
- -mindepth 2 \
- -maxdepth 2 \
- -type f \
- -name 'config.m4' \
- | xargs -n1 dirname \
- | xargs -n1 basename \
- | sort \
- | xargs
- exit 1
-fi
-shift
-
-pm='unknown'
-if [ -e /lib/apk/db/installed ]; then
- pm='apk'
-fi
-
-if [ "$pm" = 'apk' ]; then
- if \
- [ -n "$PHPIZE_DEPS" ] \
- && ! apk info --installed .phpize-deps > /dev/null \
- && ! apk info --installed .phpize-deps-configure > /dev/null \
- ; then
- apk add --no-cache --virtual .phpize-deps-configure $PHPIZE_DEPS
- fi
-fi
-
-set -x
-cd "$ext"
-phpize
-./configure "$@"
diff --git a/5.3/docker-php-ext-enable b/5.3/docker-php-ext-enable
deleted file mode 100755
index 367aaf2b..00000000
--- a/5.3/docker-php-ext-enable
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/bin/sh
-set -e
-
-cd "$(php -r 'echo ini_get("extension_dir");')"
-
-usage() {
- echo "usage: $0 [options] module-name [module-name ...]"
- echo " ie: $0 gd mysqli"
- echo " $0 pdo pdo_mysql"
- echo " $0 --ini-name 0-apc.ini apcu apc"
- echo
- echo 'Possible values for module-name:'
- echo $(find -maxdepth 1 -type f -name '*.so' -exec basename '{}' ';' | sort)
-}
-
-opts="$(getopt -o 'h?' --long 'help,ini-name:' -- "$@" || { usage >&2 && false; })"
-eval set -- "$opts"
-
-iniName=
-while true; do
- flag="$1"
- shift
- case "$flag" in
- --help|-h|'-?') usage && exit 0 ;;
- --ini-name) iniName="$1" && shift ;;
- --) break ;;
- *)
- {
- echo "error: unknown flag: $flag"
- usage
- } >&2
- exit 1
- ;;
- esac
-done
-
-modules=
-for module; do
- if [ -z "$module" ]; then
- continue
- fi
- if [ -f "$module.so" ] && ! [ -f "$module" ]; then
- # allow ".so" to be optional
- module="$module.so"
- fi
- if ! [ -f "$module" ]; then
- echo >&2 "error: $(readlink -f "$module") does not exist"
- echo >&2
- usage >&2
- exit 1
- fi
- modules="$modules $module"
-done
-
-if [ -z "$modules" ]; then
- usage >&2
- exit 1
-fi
-
-for module in $modules; do
- if nm -g "$module" | grep -q ' zend_extension_entry$'; then
- # https://wiki.php.net/internals/extensions#loading_zend_extensions
- line="zend_extension=$(readlink -f "$module")"
- else
- line="extension=$module"
- fi
-
- ext="$(basename "$module")"
- ext="${ext%.*}"
- if php -r 'exit(extension_loaded("'"$ext"'") ? 0 : 1);'; then
- # this isn't perfect, but it's better than nothing
- # (for example, 'opcache.so' presents inside PHP as 'Zend OPcache', not 'opcache')
- echo >&2
- echo >&2 "warning: $ext ($module) is already loaded!"
- echo >&2
- continue
- fi
-
- ini="/usr/local/etc/php/conf.d/${iniName:-"docker-php-ext-$ext.ini"}"
- if ! grep -q "$line" "$ini" 2>/dev/null; then
- echo "$line" >> "$ini"
- fi
-done
diff --git a/5.3/docker-php-ext-install b/5.3/docker-php-ext-install
deleted file mode 100755
index c0660230..00000000
--- a/5.3/docker-php-ext-install
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/bin/sh
-set -e
-
-# prefer user supplied CFLAGS, but default to our PHP_CFLAGS
-: ${CFLAGS:=$PHP_CFLAGS}
-: ${CPPFLAGS:=$PHP_CPPFLAGS}
-: ${LDFLAGS:=$PHP_LDFLAGS}
-export CFLAGS CPPFLAGS LDFLAGS
-
-srcExists=
-if [ -d /usr/src/php ]; then
- srcExists=1
-fi
-docker-php-source extract
-if [ -z "$srcExists" ]; then
- touch /usr/src/php/.docker-delete-me
-fi
-
-cd /usr/src/php/ext
-
-usage() {
- echo "usage: $0 [-jN] ext-name [ext-name ...]"
- echo " ie: $0 gd mysqli"
- echo " $0 pdo pdo_mysql"
- echo " $0 -j5 gd mbstring mysqli pdo pdo_mysql shmop"
- echo
- echo 'if custom ./configure arguments are necessary, see docker-php-ext-configure'
- echo
- echo 'Possible values for ext-name:'
- find . \
- -mindepth 2 \
- -maxdepth 2 \
- -type f \
- -name 'config.m4' \
- | xargs -n1 dirname \
- | xargs -n1 basename \
- | sort \
- | xargs
-}
-
-opts="$(getopt -o 'h?j:' --long 'help,jobs:' -- "$@" || { usage >&2 && false; })"
-eval set -- "$opts"
-
-j=1
-while true; do
- flag="$1"
- shift
- case "$flag" in
- --help|-h|'-?') usage && exit 0 ;;
- --jobs|-j) j="$1" && shift ;;
- --) break ;;
- *)
- {
- echo "error: unknown flag: $flag"
- usage
- } >&2
- exit 1
- ;;
- esac
-done
-
-exts=
-for ext; do
- if [ -z "$ext" ]; then
- continue
- fi
- if [ ! -d "$ext" ]; then
- echo >&2 "error: $PWD/$ext does not exist"
- echo >&2
- usage >&2
- exit 1
- fi
- exts="$exts $ext"
-done
-
-if [ -z "$exts" ]; then
- usage >&2
- exit 1
-fi
-
-pm='unknown'
-if [ -e /lib/apk/db/installed ]; then
- pm='apk'
-fi
-
-apkDel=
-if [ "$pm" = 'apk' ]; then
- if [ -n "$PHPIZE_DEPS" ]; then
- if apk info --installed .phpize-deps-configure > /dev/null; then
- apkDel='.phpize-deps-configure'
- elif ! apk info --installed .phpize-deps > /dev/null; then
- apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS
- apkDel='.phpize-deps'
- fi
- fi
-fi
-
-popDir="$PWD"
-for ext in $exts; do
- cd "$ext"
- [ -e Makefile ] || docker-php-ext-configure "$ext"
- make -j"$j"
- make -j"$j" install
- find modules \
- -maxdepth 1 \
- -name '*.so' \
- -exec basename '{}' ';' \
- | xargs -r docker-php-ext-enable
- make -j"$j" clean
- cd "$popDir"
-done
-
-if [ "$pm" = 'apk' ] && [ -n "$apkDel" ]; then
- apk del $apkDel
-fi
-
-if [ -e /usr/src/php/.docker-delete-me ]; then
- docker-php-source delete
-fi
diff --git a/5.3/docker-php-source b/5.3/docker-php-source
deleted file mode 100755
index 9033d243..00000000
--- a/5.3/docker-php-source
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-set -e
-
-dir=/usr/src/php
-
-usage() {
- echo "usage: $0 COMMAND"
- echo
- echo "Manage php source tarball lifecycle."
- echo
- echo "Commands:"
- echo " extract extract php source tarball into directory $dir if not already done."
- echo " delete delete extracted php source located into $dir if not already done."
- echo
-}
-
-case "$1" in
- extract)
- mkdir -p "$dir"
- if [ ! -f "$dir/.docker-extracted" ]; then
- tar -Jxf /usr/src/php.tar.xz -C "$dir" --strip-components=1
- touch "$dir/.docker-extracted"
- fi
- ;;
-
- delete)
- rm -rf "$dir"
- ;;
-
- *)
- usage
- exit 1
- ;;
-esac
diff --git a/5.3/templates/authorized_keys.tpl b/5.3/templates/authorized_keys.tpl
deleted file mode 100644
index 13d7e16c..00000000
--- a/5.3/templates/authorized_keys.tpl
+++ /dev/null
@@ -1,2 +0,0 @@
-{{ range jsonArray (getenv "SSH_PUBLIC_KEYS" "[]" ) }}{{ . }}
-{{ end }}
\ No newline at end of file
diff --git a/5.3/templates/crontab.tpl b/5.3/templates/crontab.tpl
deleted file mode 100644
index 6850ee4c..00000000
--- a/5.3/templates/crontab.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{{ getenv "CRONTAB" "" }}
\ No newline at end of file
diff --git a/5.3/templates/docker-php-ext-opcache.ini.tpl b/5.3/templates/docker-php-ext-opcache.ini.tpl
deleted file mode 100644
index 50959dd0..00000000
--- a/5.3/templates/docker-php-ext-opcache.ini.tpl
+++ /dev/null
@@ -1,10 +0,0 @@
-[opcache]
-zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20090626/opcache.so
-opcache.enable = {{ getenv "PHP_OPCACHE_ENABLE" "1" }}
-opcache.validate_timestamps = {{ getenv "PHP_OPCACHE_VALIDATE_TIMESTAMPS" "1" }}
-opcache.revalidate_freq = {{ getenv "PHP_OPCACHE_REVALIDATE_FREQ" "2" }}
-opcache.max_accelerated_files = {{ getenv "PHP_OPCACHE_MAX_ACCELERATED_FILES" "4000" }}
-opcache.memory_consumption = {{ getenv "PHP_OPCACHE_MEMORY_CONSUMPTION" "128" }}
-opcache.interned_strings_buffer = {{ getenv "PHP_OPCACHE_INTERNED_STRINGS_BUFFER" "8" }}
-opcache.fast_shutdown = {{ getenv "PHP_OPCACHE_FAST_SHUTDOWN" "1" }}
-opcache.enable_cli = {{ getenv "PHP_OPCACHE_ENABLE_CLI" "1" }}
\ No newline at end of file
diff --git a/5.3/templates/docker-php-ext-xdebug.ini.tpl b/5.3/templates/docker-php-ext-xdebug.ini.tpl
deleted file mode 100644
index 3f32e300..00000000
--- a/5.3/templates/docker-php-ext-xdebug.ini.tpl
+++ /dev/null
@@ -1,12 +0,0 @@
-{{ if getenv "PHP_XDEBUG" }}
-[xdebug]
-zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so
-xdebug.default_enable = {{ getenv "PHP_XDEBUG_DEFAULT_ENABLE" "0" }}
-xdebug.remote_enable = {{ getenv "PHP_XDEBUG_REMOTE_ENABLE" "1" }}
-xdebug.remote_handler = dbgp
-xdebug.remote_port = {{ getenv "PHP_XDEBUG_REMOTE_PORT" "9000" }}
-xdebug.remote_autostart = {{ getenv "PHP_XDEBUG_REMOTE_AUTOSTART" "1" }}
-xdebug.remote_connect_back = {{ getenv "PHP_XDEBUG_REMOTE_CONNECT_BACK" "1" }}
-xdebug.remote_host = {{ getenv "PHP_XDEBUG_REMOTE_HOST" "localhost" }}
-xdebug.max_nesting_level = {{ getenv "PHP_XDEBUG_MAX_NESTING_LEVEL" "256" }}
-{{ end }}
diff --git a/5.3/templates/docker-php.ini.tpl b/5.3/templates/docker-php.ini.tpl
deleted file mode 100644
index ae9f9844..00000000
--- a/5.3/templates/docker-php.ini.tpl
+++ /dev/null
@@ -1,35 +0,0 @@
-; This file user only to override default php.ini values
-; BASIC SETTINGS: $PHP_INI_DIR/php.ini
-; PHP-FPM SETTINGS: /usr/local/etc/php-fpm.d/zz-www.conf
-
-[PHP]
-realpath_cache_size = {{ getenv "PHP_REALPATH_CACHE_SIZE" "16k" }}
-realpath_cache_ttl = {{ getenv "PHP_REALPATH_CACHE_TTL" "120" }}
-memory_limit = {{ getenv "PHP_CLI_MEMORY_LIMIT" "-1" }}
-error_reporting = {{ getenv "PHP_ERROR_REPORTING" "E_ALL" }}
-log_errors_max_len = {{ getenv "PHP_LOG_ERRORS_MAX_LEN" "1024" }}
-track_errors = {{ getenv "PHP_TRACK_ERRORS" "On" }}
-error_log = /proc/self/fd/2
-
-[Date]
-date.timezone = {{ getenv "PHP_DATE_TIMEZONE" "UTC"}}
-
-[Pdo_mysql]
-pdo_mysql.cache_size = {{ getenv "PHP_PDO_MYSQL_CACHE_SIZE" "2000" }}
-
-[mail function]
-sendmail_path = {{ getenv "PHP_SENDMAIL_PATH" "/bin/true" }}
-
-[MySQL]
-mysql.cache_size = {{ getenv "PHP_MYSQL_CACHE_SIZE" "2000" }}
-
-[MySQLi]
-mysqli.cache_size = {{ getenv "PHP_MYSQLI_CACHE_SIZE" "2000" }}
-
-[Assertion]
-assert.active = {{ getenv "PHP_ASSERT_ACTIVE" "On" }}
-
-[mbstring]
-mbstring.http_input = {{ getenv "PHP_MBSTRING_HTTP_INPUT" "" }}
-mbstring.http_output = {{ getenv "PHP_MBSTRING_HTTP_OUTPUT" "" }}
-mbstring.encoding_translation = {{ getenv "PHP_MBSTRING_ENCODING_TRANSLATION" "Off" }}
\ No newline at end of file
diff --git a/5.3/templates/env.tpl b/5.3/templates/env.tpl
deleted file mode 100644
index f9b70c73..00000000
--- a/5.3/templates/env.tpl
+++ /dev/null
@@ -1,2 +0,0 @@
-{{ range jsonArray (getenv "FPM_ENV_VARS" "[]") }}{{ if getenv . }}env[{{ . }}] = {{ getenv . }}
-{{ end }}{{ end }}
\ No newline at end of file
diff --git a/5.3/templates/id_rsa.tpl b/5.3/templates/id_rsa.tpl
deleted file mode 100644
index 5d3f525c..00000000
--- a/5.3/templates/id_rsa.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{{ getenv "SSH_PRIVATE_KEY" "" }}
\ No newline at end of file
diff --git a/5.3/templates/sshd_config.tpl b/5.3/templates/sshd_config.tpl
deleted file mode 100644
index ed4b4a99..00000000
--- a/5.3/templates/sshd_config.tpl
+++ /dev/null
@@ -1,121 +0,0 @@
-# $OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $
-
-# This is the sshd server system-wide configuration file. See
-# sshd_config(5) for more information.
-
-# This sshd was compiled with PATH=/bin:/usr/bin:/sbin:/usr/sbin
-
-# The strategy used for options in the default sshd_config shipped with
-# OpenSSH is to specify options with their default value where
-# possible, but leave them commented. Uncommented options override the
-# default value.
-
-#Port 22
-#AddressFamily any
-#ListenAddress 0.0.0.0
-#ListenAddress ::
-
-{{ $keys_dir := (getenv "SSHD_HOST_KEYS_DIR" "/etc/ssh") }}
-HostKey {{ $keys_dir }}/ssh_host_rsa_key
-HostKey {{ $keys_dir }}/ssh_host_dsa_key
-HostKey {{ $keys_dir }}/ssh_host_ecdsa_key
-HostKey {{ $keys_dir }}/ssh_host_ed25519_key
-
-# Ciphers and keying
-#RekeyLimit default none
-
-# Logging
-#SyslogFacility AUTH
-LogLevel {{ getenv "SSHD_LOG_LEVEL" "INFO" }}
-
-# Authentication:
-
-#LoginGraceTime 2m
-#PermitRootLogin prohibit-password
-#StrictModes yes
-#MaxAuthTries 6
-#MaxSessions 10
-
-PubkeyAuthentication yes
-
-# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
-# but this is overridden so installations will only check .ssh/authorized_keys
-AuthorizedKeysFile .ssh/authorized_keys
-
-#AuthorizedPrincipalsFile none
-
-#AuthorizedKeysCommand none
-#AuthorizedKeysCommandUser nobody
-
-# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
-#HostbasedAuthentication no
-# Change to yes if you don't trust ~/.ssh/known_hosts for
-# HostbasedAuthentication
-#IgnoreUserKnownHosts no
-# Don't read the user's ~/.rhosts and ~/.shosts files
-#IgnoreRhosts yes
-
-# To disable tunneled clear text passwords, change to no here!
-PasswordAuthentication {{ getenv "SSHD_PASSWORD_AUTHENTICATION" "no" }}
-#PermitEmptyPasswords no
-
-# Change to no to disable s/key passwords
-#ChallengeResponseAuthentication yes
-
-# Kerberos options
-#KerberosAuthentication no
-#KerberosOrLocalPasswd yes
-#KerberosTicketCleanup yes
-#KerberosGetAFSToken no
-
-# GSSAPI options
-#GSSAPIAuthentication no
-#GSSAPICleanupCredentials yes
-
-# UsePAM NOT SUPPORTED
-
-#AllowAgentForwarding yes
-#AllowTcpForwarding yes
-GatewayPorts {{ getenv "SSHD_GATEWAY_PORTS" "no" }}
-#X11Forwarding no
-#X11DisplayOffset 10
-#X11UseLocalhost yes
-#PermitTTY yes
-#PrintMotd yes
-#PrintLastLog yes
-#TCPKeepAlive yes
-#UseLogin no
-PermitUserEnvironment {{ getenv "SSHD_PERMIT_USER_ENV" "no" }}
-#Compression delayed
-#ClientAliveInterval 0
-#ClientAliveCountMax 3
-UseDNS {{ getenv "SSHD_USE_DNS" "yes" }}
-#PidFile /run/sshd.pid
-#MaxStartups 10:30:100
-#PermitTunnel no
-#ChrootDirectory none
-#VersionAddendum none
-
-# no default banner path
-#Banner none
-
-# override default of no subsystems
-Subsystem sftp /usr/lib/ssh/sftp-server
-
-# the following are HPN related configuration options
-# tcp receive buffer polling. disable in non autotuning kernels
-#TcpRcvBufPoll yes
-
-# disable hpn performance boosts
-#HPNDisabled no
-
-# buffer size for hpn to non-hpn connections
-#HPNBufferSize 2048
-
-
-# Example of overriding settings on a per-user basis
-#Match User anoncvs
-# X11Forwarding no
-# AllowTcpForwarding no
-# PermitTTY no
-# ForceCommand cvs server
diff --git a/5.3/templates/zz-www.conf.tpl b/5.3/templates/zz-www.conf.tpl
deleted file mode 100644
index 5f8ab20a..00000000
--- a/5.3/templates/zz-www.conf.tpl
+++ /dev/null
@@ -1,49 +0,0 @@
-[global]
-log_level = {{ getenv "PHP_FPM_LOG_LEVEL" "notice" }}
-
-[www]
-pm = {{ getenv "PHP_FPM_PM" "dynamic" }}
-pm.max_children = {{ getenv "PHP_FPM_PM_MAX_CHILDREN" "8" }}
-pm.start_servers = {{ getenv "PHP_FPM_PM_START_SERVERS" "2" }}
-pm.min_spare_servers = {{ getenv "PHP_FPM_PM_MIN_SPARE_SERVERS" "1" }}
-pm.max_spare_servers = {{ getenv "PHP_FPM_PM_MAX_SPARE_SERVERS" "3" }}
-pm.max_requests = {{ getenv "PHP_FPM_PM_MAX_REQUESTS" "500" }}
-{{ if getenv "PHP_FPM_PM_STATUS_PATH" }}
-pm.status_path = {{ getenv "PHP_FPM_PM_STATUS_PATH" }}
-{{ end }}
-{{ if getenv "PHP_FPM_REQUEST_SLOWLOG_TIMEOUT" }}
-slowlog = /proc/self/fd/2
-request_slowlog_timeout = {{ getenv "PHP_FPM_REQUEST_SLOWLOG_TIMEOUT" }}
-{{ end }}
-
-php_value[display_errors] = {{ getenv "PHP_DISPLAY_ERRORS" "On" }}
-php_value[display_startup_errors] = {{ getenv "PHP_DISPLAY_STARTUP_ERRORS" "On" }}
-php_value[expose_php] = {{ getenv "PHP_EXPOSE" "Off" }}
-php_value[max_execution_time] = {{ getenv "PHP_MAX_EXECUTION_TIME" "120" }}
-php_value[max_input_time] = {{ getenv "PHP_MAX_INPUT_TIME" "60" }}
-php_value[max_input_vars] = {{ getenv "PHP_MAX_INPUT_VARS" "2000" }}
-php_value[memory_limit] = {{ getenv "PHP_MEMORY_LIMIT" "512M" }}
-php_value[post_max_size] = {{ getenv "PHP_POST_MAX_SIZE" "32M" }}
-php_value[upload_max_filesize] = {{ getenv "PHP_UPLOAD_MAX_FILESIZE" "32M" }}
-php_value[max_file_uploads] = {{ getenv "PHP_MAX_FILE_UPLOADS" "20" }}
-php_value[output_buffering] = {{ getenv "PHP_OUTPUT_BUFFERING" "4096" }}
-php_value[always_populate_raw_post_data] = {{ getenv "PHP_ALWAYS_POPULATE_RAW_POST_DATA" "0" }}
-php_value[session.auto_start] = {{ getenv "PHP_SESSION_AUTO_START" "0" }}
-php_value[session.bug_compat_42] = {{ getenv "PHP_SESSION_BUG_COMPAT_42" "On" }}
-php_value[session.bug_compat_warn] = {{ getenv "PHP_SESSION_BUG_COMPAT_WARN" "On" }}
-
-{{ if (getenv "PHP_FPM_USER") }}user = {{ getenv "PHP_FPM_USER" }}{{ end }}
-{{ if (getenv "PHP_FPM_GROUP") }}group = {{ getenv "PHP_FPM_GROUP" }}{{ end }}
-
-{{ if getenv "PHP_FPM_ENV_VARS" }}{{ range jsonArray (getenv "PHP_FPM_ENV_VARS") }}{{ if getenv . }}
-env[{{.}}] = {{ getenv . }}{{ end }}{{ end }}{{ end }}
-
-; Pool for health-check pings to avoid spam in access log.
-[ping]
-pm = static
-pm.max_children = 1
-listen = 0.0.0.0:9001
-ping.path = "/ping"
-
-{{ if (getenv "PHP_FPM_USER") }}user = {{ getenv "PHP_FPM_USER" }}{{ end }}
-{{ if (getenv "PHP_FPM_GROUP") }}group = {{ getenv "PHP_FPM_GROUP" }}{{ end }}
diff --git a/5.3/test.sh b/5.3/test.sh
deleted file mode 100755
index 8bd14fb9..00000000
--- a/5.3/test.sh
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/bin/bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-git_url=git@bitbucket.org:wodby/php-git-test.git
-
-wait_for_cron() {
- executed=0
-
- for i in $(seq 1 13); do
- if docker_exec crond cat /home/www-data/cron | grep -q "test"; then
- executed=1
- break
- fi
- echo 'Waiting for cron execution...'
- sleep 5
- done
-
- if [[ "${executed}" -eq '0' ]]; then
- echo >&2 'Cron failed.'
- exit 1
- fi
-
- echo 'Cron has been executed!'
-}
-
-docker_exec() {
- docker-compose -f test/docker-compose.yml exec "${@}"
-}
-
-run_action() {
- docker_exec "${1}" make "${@:2}" -f /usr/local/bin/actions.mk
-}
-
-docker-compose -f test/docker-compose.yml up -d
-run_action nginx check-ready max_try=10
-run_action php check-ready max_try=10
-
-# PHP tools
-docker_exec php tests.sh
-
-# SSH
-echo -n "Testing ssh... "
-docker_exec php touch /home/www-data/.ssh/known_hosts
-docker_exec php ssh www-data@sshd cat /home/www-data/.ssh/authorized_keys | grep -q admin@wodby.com
-echo "OK"
-
-# Git actions
-echo -n "Running git actions... "
-docker_exec php bash -c 'echo -e "Host bitbucket.org\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config'
-run_action php git-clone url="${git_url}" branch=master
-run_action php git-checkout target=develop
-echo "OK"
-
-# PHP-FPM
-echo -n "Checking PHP-FPM... "
-docker_exec php curl nginx | grep -q "Hello World!"
-echo "OK"
-
-# Walter CD
-echo -n "Running walter scripts... "
-run_action php walter
-docker_exec php cat ./walter-shell-stage
-docker_exec php cat ./walter-command-stage
-echo "OK"
-
-# Crond
-wait_for_cron
-
-docker-compose -f test/docker-compose.yml down
diff --git a/5.3/test/docker-compose.yml b/5.3/test/docker-compose.yml
deleted file mode 100644
index 55d6ad72..00000000
--- a/5.3/test/docker-compose.yml
+++ /dev/null
@@ -1,93 +0,0 @@
-version: "2"
-
-services:
- nginx:
- image: wodby/nginx:1.13
- environment:
- NGINX_BACKEND_HOST: php
- volumes:
- - ./nginx.conf:/etc/gotpl/default-vhost.conf.tpl
- depends_on:
- - php
-
- sshd:
- image: $IMAGE
- command: sudo /usr/sbin/sshd -De
- environment:
- DEBUG: 1
- SSH_PUBLIC_KEYS: |-
- ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC4mQ9wfvufRcDQ4LsoCYEyDL4LNsvP8dWKWMQKrnJ8k09IQm7mnvyzid8zxNJpQYxX12foC0+BttjejWVj67vf1if7rDHb\/e0oX7yQp4ji3QTjDNPDaOR\/eTOCNv1C5Lfj3n7D1G7O2dOiw8lAoSalGy6nltuTYY9EXbkl1dXaCG7qbQRVJEJdZ6x2oJ8FubJO6wjZvj9P759ziLVmWAqtzUgIQVlbv0nqSoq16Ug381sfnRvsHO1fXGhdgHGQ0WP720p5cBHxG+62HJROah5b7gahXidC2Lo6kdnLb5FOzZjRJO1aDiKgry\/GoNNijs6D5xwLtn44HoHMe0eyUw7lQCrWZwvNmdfvIecr+ZJNwT8cbZ2Cf5y0SqD4JZpcolR5FKuQluaVMdOvJCa8A\/BzvRqIeNLmZuHFRvruu2VTIHHZFR2CFgH9F+G\/KyBnmQwV\/FgqN6sy1MAuFmyizL7sJHVL3tSaMPSs423A+SLWYkXLxpUPjo2J5W2ImZYq97AQaHcArvrhKS2MwbBFGwaxglcq5t8Ss6Df3fEZUWGLHJSdOv\/fn\/+CNOiI7hjj3v5mHaxxnC27MOHmJlrqmCA3OXuQ9mZG\/hSfj2vPKF+xFUarqqsp4zVsDH71bY2Q+zHpyncIFnyhaiEba9gbvmUVOfUyYglkJ6TGF5xAhpDFpQ== admin@wodby.com"]
-
- php:
- image: $IMAGE
- environment:
- SSH_DISABLE_STRICT_KEY_CHECKING: 1
- PHP_XDEBUG: 1
- SSH_PRIVATE_KEY: |-
- -----BEGIN RSA PRIVATE KEY-----
- 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
- -----END RSA PRIVATE KEY-----
- volumes:
- - ./tests.sh:/usr/local/bin/tests.sh
- - ./php_modules:/home/www-data/php_modules
- depends_on:
- - sshd
-
- crond:
- image: $IMAGE
- command: sudo -E crond -f -d 0
- environment:
- CRONTAB_ENV: test
- CRONTAB: |-
- # min hour day month weekday command
- */1 * * * * echo "$${CRONTAB_ENV}" > /home/www-data/cron
- depends_on:
- - sshd
diff --git a/5.3/test/nginx.conf b/5.3/test/nginx.conf
deleted file mode 100644
index a89ce5ba..00000000
--- a/5.3/test/nginx.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-server {
- server_name default;
- listen 80;
-
- root /var/www/html/;
- index index.php;
-
- fastcgi_param REQUEST_METHOD $request_method;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- fastcgi_index index.php;
-
- location / {
- fastcgi_pass php:9000;
- }
-}
diff --git a/5.3/test/php_modules b/5.3/test/php_modules
deleted file mode 100644
index f676791b..00000000
--- a/5.3/test/php_modules
+++ /dev/null
@@ -1,70 +0,0 @@
-[PHP Modules]
-amqp
-apc
-apcu
-bcmath
-bz2
-calendar
-Core
-ctype
-curl
-date
-dom
-ereg
-exif
-fileinfo
-filter
-ftp
-gd
-hash
-iconv
-imap
-intl
-json
-ldap
-libxml
-mbstring
-mcrypt
-memcached
-mongo
-mysql
-mysqli
-mysqlnd
-OAuth
-openssl
-pcntl
-pcre
-PDO
-pdo_mysql
-pdo_pgsql
-pdo_sqlite
-pgsql
-Phar
-posix
-readline
-Reflection
-session
-SimpleXML
-soap
-sockets
-SPL
-SQLite
-sqlite3
-standard
-tokenizer
-uploadprogress
-xdebug
-xml
-xmlreader
-xmlrpc
-xmlwriter
-xsl
-yaml
-Zend OPcache
-zip
-zlib
-
-[Zend Modules]
-Xdebug
-Zend OPcache
-
diff --git a/5.3/test/tests.sh b/5.3/test/tests.sh
deleted file mode 100755
index 282e8d21..00000000
--- a/5.3/test/tests.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-php -m > ~/php_modules.tmp
-echo -n "Checking PHP modules... "
-
-# Modify copy, keep the mounted version untouched.
-cp ~/php_modules ~/expected_modules
-
-if [[ "${PHP_DEBUG}" == 1 ]]; then
- sed -i '/blackfire/d' ~/expected_modules
-fi
-
-if ! cmp -s ~/php_modules.tmp ~/expected_modules; then
- echo "Error. PHP modules are not identical."
- diff ~/php_modules.tmp ~/expected_modules
- exit 1
-fi
-
-echo "OK"
-
-echo -n "Checking composer... "
-composer --version | grep -q 'Composer version'
-echo "OK"
-
-echo -n "Checking walter... "
-walter -v | grep -q 'Walter version'
-echo "OK"
-
-echo -n "Checking PHPUnit... "
-phpunit -version | grep -q 'PHPUnit'
-echo "OK"
diff --git a/5.6/Dockerfile b/5.6/Dockerfile
deleted file mode 100644
index cf7156af..00000000
--- a/5.6/Dockerfile
+++ /dev/null
@@ -1,256 +0,0 @@
-ARG FROM_TAG
-
-FROM wodby/base-php:${FROM_TAG}
-
-ARG PHP_DEBUG
-
-ENV PHP_DEBUG="${PHP_DEBUG:-0}" \
- SSHD_PERMIT_USER_ENV="yes" \
- PHP_PRESTISSIMO_VER="0.3" \
- PHP_UNIT_VER="5.7" \
- WALTER_VER="1.3.0" \
-
- EXT_AMQP_VER="1.9.1" \
- EXT_APCU_VER="4.0.11" \
- EXT_GEOIP_VER="1.1.1" \
- EXT_IMAGICK_VER="3.4.3" \
- EXT_MEMCACHED_VER="2.2.0" \
- EXT_MONGODB_VER="1.3.2" \
- EXT_OAUTH_VER="1.2.3" \
- EXT_REDIS_VER="3.1.4" \
- EXT_UPLOADPROGRESS_VER="1.0.3.1" \
- EXT_XDEBUG_VER="2.5.5" \
- EXT_YAML_VER="1.3.1" \
-
- C_CLIENT_VER="2007f-r6" \
- FREETYPE_VER="2.7.1-r1" \
- GEOIP_VER="1.6.10-r0" \
- ICU_LIBS_VER="58.2-r2" \
- IMAGEMAGICK_VER="7.0.5.10-r0" \
- LIBBZ2_VER="1.0.6-r5" \
- LIBJPEG_TURBO_VER="1.5.1-r0" \
- LIBLDAP_VER="2.4.44-r5" \
- LIBLTDL_VER="2.4.6-r1" \
- LIBMEMCACHED_LIBS_VER="1.0.18-r1" \
- LIBMCRYPT_VER="2.5.8-r7" \
- LIBPNG_VER="1.6.29-r1" \
- LIBXSLT_VER="1.1.29-r3" \
- MARIADB_CLIENT_VER="10.1.26-r0" \
- POSTGRESQL_CLIENT_VER="9.6.5-r0" \
- RABBITMQ_C_VER="0.8.0-r2" \
- YAML_VER="0.1.7-r0"
-
-ENV WALTER_URL="https://github.com/walter-cd/walter/releases/download/v${WALTER_VER}/walter_${WALTER_VER}_linux_amd64.tar.gz" \
- BLACKFIRE_URL="https://blackfire.io/api/v1/releases/probe/php/alpine/amd64" \
-
- APP_ROOT="/var/www/html" \
- PATH="/home/www-data/.composer/vendor/bin:${PATH}"
-
-RUN set -xe && \
-
- # Recreate user with correct params
- deluser www-data && \
- addgroup -g 82 -S www-data && \
- adduser -u 82 -D -S -s /bin/bash -G www-data www-data && \
- sed -i '/^www-data/s/!/*/' /etc/shadow && \
- echo "PS1='\w\$ '" >> /home/www-data/.bashrc && \
-
- apk add --update --no-cache --virtual .php-rundeps \
- c-client=${C_CLIENT_VER} \
- fcgi \
- freetype=${FREETYPE_VER} \
- geoip=${GEOIP_VER} \
- git \
- icu-libs=${ICU_LIBS_VER} \
- imagemagick=${IMAGEMAGICK_VER} \
- less \
- libbz2=${LIBBZ2_VER} \
- libjpeg-turbo=${LIBJPEG_TURBO_VER} \
- libldap=${LIBLDAP_VER} \
- libltdl=${LIBLTDL_VER} \
- libmemcached-libs=${LIBMEMCACHED_LIBS_VER} \
- libmcrypt=${LIBMCRYPT_VER} \
- libpng=${LIBPNG_VER} \
- libxslt=${LIBXSLT_VER} \
- make \
- mariadb-client=${MARIADB_CLIENT_VER} \
- nano \
- openssh \
- openssh-client \
- patch \
- postgresql-client=${POSTGRESQL_CLIENT_VER} \
- rabbitmq-c=${RABBITMQ_C_VER} \
- rsync \
- su-exec \
- sudo \
- tig \
- tmux \
- yaml=${YAML_VER} && \
-
- apk add --update --no-cache --virtual .build-deps \
- autoconf \
- cmake \
- build-base \
- bzip2-dev \
- freetype-dev \
- geoip-dev \
- icu-dev \
- imagemagick-dev \
- imap-dev \
- jpeg-dev \
- libjpeg-turbo-dev \
- libmemcached-dev \
- libmcrypt-dev \
- libpng-dev \
- libtool \
- libxslt-dev \
- openldap-dev \
- pcre-dev \
- postgresql-dev \
- rabbitmq-c-dev \
- yaml-dev && \
-
- if [[ $PHP_DEBUG == 1 ]]; then \
- apk add --update --no-cache --virtual .debug-tools gdb; \
- fi && \
-
- docker-php-source extract && \
-
- docker-php-ext-install \
- bcmath \
- bz2 \
- calendar \
- exif \
- imap \
- intl \
- ldap \
- mcrypt \
- mysql \
- mysqli \
- opcache \
- pcntl \
- pdo_mysql \
- pdo_pgsql \
- pgsql \
- phar \
- soap \
- sockets \
- xmlrpc \
- xsl \
- zip && \
-
- # GD
- docker-php-ext-configure gd \
- --with-gd \
- --with-freetype-dir=/usr/include/ \
- --with-png-dir=/usr/include/ \
- --with-jpeg-dir=/usr/include/ && \
- NPROC=$(getconf _NPROCESSORS_ONLN) && \
- docker-php-ext-install -j${NPROC} gd && \
-
- # PECL extensions
- pecl config-set php_ini "${PHP_INI_DIR}/php.ini" && \
-
- pecl install \
- amqp-${EXT_AMQP_VER} \
- apcu-${EXT_APCU_VER} \
- geoip-${EXT_GEOIP_VER} \
- imagick-${EXT_IMAGICK_VER} \
- memcached-${EXT_MEMCACHED_VER} \
- mongodb-${EXT_MONGODB_VER} \
- oauth-${EXT_OAUTH_VER} \
- redis-${EXT_REDIS_VER} \
- uploadprogress-${EXT_UPLOADPROGRESS_VER} \
- xdebug-${EXT_XDEBUG_VER} \
- yaml-${EXT_YAML_VER} && \
-
- docker-php-ext-enable \
- amqp \
- apcu \
- imagick \
- geoip \
- memcached \
- mongodb \
- oauth \
- redis \
- uploadprogress \
- xdebug \
- yaml && \
-
- # Blackfire extension
- mkdir -p /tmp/blackfire && \
- version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") && \
- wget -qO- "${BLACKFIRE_URL}/${version}" | tar xz --no-same-owner -C /tmp/blackfire && \
- mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so && \
-
- # Install composer
- wget -qO- https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && \
-
- # Install composer parallel install plugin
- su-exec www-data composer global require hirak/prestissimo:^${PHP_PRESTISSIMO_VER} && \
-
- # Install PHPUnit
- wget -qO- https://phar.phpunit.de/phpunit-${PHP_UNIT_VER}.phar > /usr/local/bin/phpunit && \
- chmod +x /usr/local/bin/phpunit && \
-
- # Install Walter
- wget -qO- ${WALTER_URL} | tar xz -C /tmp/ && \
- mv /tmp/walter_linux_amd64/walter /usr/local/bin && \
-
- # Add composer bins to $PATH
- su-exec www-data echo "export PATH=/home/www-data/.composer/vendor/bin:${PATH}" > /home/www-data/.profile && \
-
- # Configure sudoers
- { \
- echo -n 'www-data ALL=(root) NOPASSWD:SETENV: ' ; \
- echo -n '/usr/local/bin/sshd-generate-keys.sh, ' ; \
- echo -n '/usr/local/bin/fix-permissions.sh, ' ; \
- echo -n '/usr/sbin/sshd, ' ; \
- echo '/usr/sbin/crond' ; \
- } | tee /etc/sudoers.d/www-data && \
-
- # Configure ldap
- echo "TLS_CACERTDIR /etc/ssl/certs/" >> /etc/openldap/ldap.conf && \
-
- # We run php-fpm as non root
- sed -i '/^user = www-data/d;/^group = www-data/d' /usr/local/etc/php-fpm.d/www.conf* && \
-
- # Create required directories and fix permissions
- mkdir -p ${APP_ROOT} && \
- su-exec www-data mkdir /home/www-data/.ssh && \
-
- touch /etc/ssh/sshd_config && \
- chown www-data: /etc/ssh/sshd_config && \
-
- rm /etc/crontabs/root && \
- touch /etc/crontabs/www-data && \
- chown root:www-data /etc/crontabs/www-data && \
- chmod 660 /etc/crontabs/www-data && \
-
- chown -R www-data:www-data /var/www "${PHP_INI_DIR}/conf.d" /usr/local/etc/php-fpm.d/ /home/www-data/.profile && \
-
- # Cleanup
- su-exec www-data composer clear-cache && \
- docker-php-source delete && \
- apk del .build-deps && \
- pecl clear-cache && \
-
- rm -rf \
- /usr/src/php.tar.xz \
- /usr/include/php \
- /usr/lib/php/build \
- /tmp/* \
- /root/.composer
-
-USER www-data
-
-WORKDIR ${APP_ROOT}
-EXPOSE 9000
-
-COPY templates /etc/gotpl/
-COPY docker-entrypoint.sh /
-COPY actions /usr/local/bin/
-COPY php.ini ${PHP_INI_DIR}
-
-ENTRYPOINT ["/docker-entrypoint.sh"]
-CMD ["php-fpm"]
diff --git a/5.6/Makefile b/5.6/Makefile
deleted file mode 100644
index 4c5f4796..00000000
--- a/5.6/Makefile
+++ /dev/null
@@ -1,49 +0,0 @@
--include env_make
-
-PHP_VER ?= 5.6
-TAG ?= $(PHP_VER)
-
-REPO = wodby/php
-NAME = php-$(PHP_VER)
-FROM_TAG = 5.6.32
-
-PHP_DEBUG ?= 0
-
-ifneq ($(PHP_DEBUG), 0)
- override TAG := $(TAG)-debug
- FROM_TAG := $(FROM_TAG)-debug
- NAME := $(NAME)-debug
-endif
-
-.PHONY: build test push shell run start stop logs clean release
-
-default: build
-
-build:
- docker build -t $(REPO):$(TAG) --build-arg FROM_TAG=$(FROM_TAG) --build-arg PHP_DEBUG=$(PHP_DEBUG) ./
-
-test:
- IMAGE=$(REPO):$(TAG) ./test.sh
-
-push:
- docker push $(REPO):$(TAG)
-
-shell:
- docker run --rm --name $(NAME) -i -t $(PORTS) $(VOLUMES) $(ENV) $(REPO):$(TAG) /bin/bash
-
-run:
- docker run --rm --name $(NAME) $(PORTS) $(VOLUMES) $(ENV) $(REPO):$(TAG) $(CMD)
-
-start:
- docker run -d --name $(NAME) $(PORTS) $(VOLUMES) $(ENV) $(REPO):$(TAG)
-
-stop:
- docker stop $(NAME)
-
-logs:
- docker logs $(NAME)
-
-clean:
- -docker rm -f $(NAME)
-
-release: build push
diff --git a/5.6/actions/git-checkout.sh b/5.6/actions/git-checkout.sh
deleted file mode 100755
index a3f6865e..00000000
--- a/5.6/actions/git-checkout.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-target=$1
-is_hash=$2
-
-cd "${APP_ROOT}"
-git stash
-git fetch --all
-git checkout "${target}"
-
-if [[ "${is_hash}" -eq '0' ]]; then
- git pull origin "${target}"
-fi
diff --git a/5.6/actions/git-clone.sh b/5.6/actions/git-clone.sh
deleted file mode 100755
index 63cbf83d..00000000
--- a/5.6/actions/git-clone.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-url=$1
-branch=$2
-
-if [[ -n "${branch}" ]]; then
- git clone -b "${branch}" "${url}" "${APP_ROOT}"
-else
- git clone "${url}" "${APP_ROOT}"
-fi
diff --git a/5.6/actions/sshd-generate-keys.sh b/5.6/actions/sshd-generate-keys.sh
deleted file mode 100755
index 5c0e79d4..00000000
--- a/5.6/actions/sshd-generate-keys.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-dir="${1:-/etc/ssh}"
-
-mkdir -p "${dir}"
-ssh-keygen -qb 2048 -t rsa -N "" -f "${dir}/ssh_host_rsa_key"
-chmod 0600 "${dir}/ssh_host_rsa_key"
-chmod 0644 "${dir}/ssh_host_rsa_key.pub"
diff --git a/5.6/actions/walter.sh b/5.6/actions/walter.sh
deleted file mode 100755
index e928d759..00000000
--- a/5.6/actions/walter.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-if [[ -f "${APP_ROOT}/wodby.yml" ]]; then
- walter -c "${APP_ROOT}/wodby.yml"
-fi
\ No newline at end of file
diff --git a/5.6/docker-entrypoint.sh b/5.6/docker-entrypoint.sh
deleted file mode 100755
index 3f5707f4..00000000
--- a/5.6/docker-entrypoint.sh
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-SSH_DIR=/home/www-data/.ssh
-
-_backwards_compatibility() {
- declare -A vars
- vars[PHP_APCU_ENABLE]="PHP_APCU_ENABLED"
- vars[PHP_FPM_SLOWLOG_TIMEOUT]="PHP_FPM_REQUEST_SLOWLOG_TIMEOUT"
- vars[PHP_FPM_MAX_CHILDREN]="PHP_FPM_PM_MAX_CHILDREN"
- vars[PHP_FPM_START_SERVERS]="PHP_FPM_PM_START_SERVERS"
- vars[PHP_FPM_MIN_SPARE_SERVERS]="PHP_FPM_PM_MIN_SPARE_SERVERS"
- vars[PHP_FPM_MAX_SPARE_SERVERS]="PHP_FPM_PM_MAX_SPARE_SERVERS"
- vars[PHP_FPM_MAX_REQUESTS]="PHP_FPM_PM_MAX_REQUESTS"
- vars[PHP_FPM_STATUS_PATH]="PHP_FPM_PM_STATUS_PATH"
-
- for i in "${!vars[@]}"; do
- export "$i"="${!vars[$i]}"
- done
-}
-
-exec_tpl() {
- if [[ -f "/etc/gotpl/$1" ]]; then
- gotpl "/etc/gotpl/$1" > "$2"
- fi
-}
-
-validate_dirs() {
- if [[ -n "${PHP_XDEBUG_TRACE_OUTPUT_DIR}" ]]; then
- mkdir -p "${PHP_XDEBUG_TRACE_OUTPUT_DIR}"
- fi
-
- if [[ -n "${PHP_XDEBUG_PROFILER_OUTPUT_DIR}" ]]; then
- mkdir -p "${PHP_XDEBUG_PROFILER_OUTPUT_DIR}"
- fi
-}
-
-init_ssh_client() {
- exec_tpl "ssh_config.tpl" "${SSH_DIR}/config"
-
- if [[ -n "${SSH_PRIVATE_KEY}" ]]; then
- exec_tpl "id_rsa.tpl" "${SSH_DIR}/id_rsa"
- chmod -f 600 "${SSH_DIR}/id_rsa"
- unset SSH_PRIVATE_KEY
- fi
-}
-
-init_sshd() {
- exec_tpl "sshd_config.tpl" "/etc/ssh/sshd_config"
-
- if [[ -n "${SSH_PUBLIC_KEYS}" ]]; then
- exec_tpl "authorized_keys.tpl" "${SSH_DIR}/authorized_keys"
- unset SSH_PUBLIC_KEYS
- fi
-
- printenv | xargs -I{} echo {} | awk ' \
- BEGIN { FS = "=" }; { \
- if ($1 != "HOME" \
- && $1 != "PWD" \
- && $1 != "PATH" \
- && $1 != "SHLVL") { \
- \
- print ""$1"="$2"" \
- } \
- }' > "${SSH_DIR}/environment"
-
- sudo sshd-generate-keys.sh "${SSHD_HOST_KEYS_DIR}"
-}
-
-init_crond() {
- exec_tpl "crontab.tpl" "/etc/crontabs/www-data"
-}
-
-process_templates() {
- _backwards_compatibility
-
- exec_tpl "docker-php.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php.ini"
- exec_tpl "docker-php-ext-apcu.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"
- exec_tpl "docker-php-ext-geoip.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-geoip.ini"
- exec_tpl "docker-php-ext-opcache.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-opcache.ini"
- exec_tpl "docker-php-ext-xdebug.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-xdebug.ini"
- exec_tpl "zz-www.conf.tpl" "/usr/local/etc/php-fpm.d/zz-www.conf"
-
- if [[ "${PHP_DEBUG}" == 0 ]]; then
- exec_tpl "docker-php-ext-blackfire.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-blackfire.ini"
- fi
-
- sed -i '/^$/d' "${PHP_INI_DIR}/conf.d/docker-php-ext-xdebug.ini"
-}
-
-init_git() {
- git config --global user.email "${GIT_USER_EMAIL:-www-data@example.com}"
- git config --global user.name "${GIT_USER_NAME:-www-data}"
-}
-
-sudo fix-permissions.sh www-data www-data "${APP_ROOT}"
-validate_dirs
-init_ssh_client
-init_git
-process_templates
-
-if [[ "${@:1:2}" == "sudo /usr/sbin/sshd" ]]; then
- init_sshd
-elif [[ "${@:1:3}" == "sudo -E crond" ]]; then
- init_crond
-fi
-
-exec-init-scripts.sh
-
-if [[ $1 == "make" ]]; then
- exec "${@}" -f /usr/local/bin/actions.mk
-else
- exec /usr/local/bin/docker-php-entrypoint "${@}"
-fi
diff --git a/5.6/templates/docker-php-ext-geoip.ini.tpl b/5.6/templates/docker-php-ext-geoip.ini.tpl
deleted file mode 100644
index fdebfe33..00000000
--- a/5.6/templates/docker-php-ext-geoip.ini.tpl
+++ /dev/null
@@ -1,3 +0,0 @@
-[geoip]
-extension=geoip.so
-geoip.custom_directory = {{ getenv "PHP_GEOIP_CUSTOM_DIR" "" }}
\ No newline at end of file
diff --git a/5.6/templates/docker-php-ext-opcache.ini.tpl b/5.6/templates/docker-php-ext-opcache.ini.tpl
deleted file mode 100644
index 518b7d02..00000000
--- a/5.6/templates/docker-php-ext-opcache.ini.tpl
+++ /dev/null
@@ -1,10 +0,0 @@
-[opcache]
-zend_extension = opcache.so
-opcache.enable = {{ getenv "PHP_OPCACHE_ENABLE" "1" }}
-opcache.validate_timestamps = {{ getenv "PHP_OPCACHE_VALIDATE_TIMESTAMPS" "1" }}
-opcache.revalidate_freq = {{ getenv "PHP_OPCACHE_REVALIDATE_FREQ" "2" }}
-opcache.max_accelerated_files = {{ getenv "PHP_OPCACHE_MAX_ACCELERATED_FILES" "4000" }}
-opcache.memory_consumption = {{ getenv "PHP_OPCACHE_MEMORY_CONSUMPTION" "128" }}
-opcache.interned_strings_buffer = {{ getenv "PHP_OPCACHE_INTERNED_STRINGS_BUFFER" "8" }}
-opcache.fast_shutdown = {{ getenv "PHP_OPCACHE_FAST_SHUTDOWN" "1" }}
-opcache.enable_cli = {{ getenv "PHP_OPCACHE_ENABLE_CLI" "1" }}
\ No newline at end of file
diff --git a/5.6/templates/docker-php-ext-xdebug.ini.tpl b/5.6/templates/docker-php-ext-xdebug.ini.tpl
deleted file mode 100644
index 9e5e67b9..00000000
--- a/5.6/templates/docker-php-ext-xdebug.ini.tpl
+++ /dev/null
@@ -1,80 +0,0 @@
-{{ if getenv "PHP_XDEBUG" }}
-[xdebug]
-zend_extension = xdebug.so
-xdebug.auto_trace = {{ getenv "PHP_XDEBUG_AUTO_TRACE" "0" }}
-xdebug.cli_color = {{ getenv "PHP_XDEBUG_CLI_COLOR" "0" }}
-xdebug.collect_assignments = {{ getenv "PHP_XDEBUG_COLLECT_ASSIGNMENTS" "0" }}
-xdebug.collect_includes = {{ getenv "PHP_XDEBUG_COLLECT_INCLUDES" "1" }}
-xdebug.collect_params = {{ getenv "PHP_XDEBUG_COLLECT_PARAMS" "0" }}
-xdebug.collect_return = {{ getenv "PHP_XDEBUG_COLLECT_RETURN" "0" }}
-xdebug.collect_vars = {{ getenv "PHP_XDEBUG_COLLECT_VARS" "0" }}
-xdebug.coverage_enable = {{ getenv "PHP_XDEBUG_COVERAGE_ENABLE" "1" }}
-xdebug.default_enable = {{ getenv "PHP_XDEBUG_DEFAULT_ENABLE" "0" }}
-xdebug.dump_globals = {{ getenv "PHP_XDEBUG_DUMP_GLOBALS" "1" }}
-xdebug.dump_once = {{ getenv "PHP_XDEBUG_DUMP_ONCE" "1" }}
-xdebug.dump_undefined = {{ getenv "PHP_XDEBUG_DUMP_UNDEFINED" "0" }}
-xdebug.extended_info = {{ getenv "PHP_XDEBUG_EXTENDED_INFO" "1" }}
-xdebug.file_link_format = "{{ getenv "PHP_XDEBUG_FILE_LINK_FORMAT" "" }}"
-xdebug.force_display_errors = {{ getenv "PHP_XDEBUG_FORCE_DISPLAY_ERRORS" "0" }}
-xdebug.force_error_reporting = {{ getenv "PHP_XDEBUG_FORCE_ERROR_REPORTING" "0" }}
-xdebug.halt_level = {{ getenv "PHP_XDEBUG_HALT_LEVEL" "0" }}
-xdebug.manual_url = {{ getenv "PHP_XDEBUG_MANUAL_URL" "http://www.php.net" }}
-xdebug.max_nesting_level = {{ getenv "PHP_XDEBUG_MAX_NESTING_LEVEL" "256" }}
-xdebug.max_stack_frames = {{ getenv "PHP_XDEBUG_MAX_STACK_FRAMES" "-1" }}
-xdebug.overload_var_dump = {{ getenv "PHP_XDEBUG_OVERLOAD_VAR_DUMP" "2" }}
-xdebug.profiler_aggregate = {{ getenv "PHP_XDEBUG_PROFILER_AGGREGATE" "0" }}
-xdebug.profiler_append = {{ getenv "PHP_XDEBUG_PROFILER_APPEND" "0" }}
-xdebug.profiler_enable = {{ getenv "PHP_XDEBUG_PROFILER_ENABLE" "0" }}
-xdebug.profiler_enable_trigger = {{ getenv "PHP_XDEBUG_PROFILER_ENABLE_TRIGGER" "0" }}
-xdebug.profiler_enable_trigger_value = "{{ getenv "PHP_XDEBUG_PROFILER_ENABLE_TRIGGER_VALUE" "" }}"
-xdebug.profiler_output_dir = {{ getenv "PHP_XDEBUG_PROFILER_OUTPUT_DIR" "/tmp" }}
-xdebug.profiler_output_name = {{ getenv "PHP_XDEBUG_PROFILER_OUTPUT_NAME" "cachegrind.out.%p" }}
-xdebug.remote_addr_header = "{{ getenv "PHP_XDEBUG_REMOTE_ADDR_HEADER" "" }}"
-xdebug.remote_autostart = {{ getenv "PHP_XDEBUG_REMOTE_AUTOSTART" "1" }}
-xdebug.remote_connect_back = {{ getenv "PHP_XDEBUG_REMOTE_CONNECT_BACK" "1" }}
-xdebug.remote_cookie_expire_time = {{ getenv "PHP_XDEBUG_REMOTE_COOKIE_EXPIRE_TIME" "3600" }}
-xdebug.remote_enable = {{ getenv "PHP_XDEBUG_REMOTE_ENABLE" "1" }}
-xdebug.remote_handler = {{ getenv "PHP_XDEBUG_REMOTE_HANDLER" "dbgp" }}
-xdebug.remote_host = {{ getenv "PHP_XDEBUG_REMOTE_HOST" "localhost" }}
-xdebug.remote_log = "{{ getenv "PHP_XDEBUG_REMOTE_LOG" "" }}"
-xdebug.remote_mode = {{ getenv "PHP_XDEBUG_REMOTE_MODE" "req" }}
-xdebug.remote_port = {{ getenv "PHP_XDEBUG_REMOTE_PORT" "9000" }}
-xdebug.scream = {{ getenv "PHP_XDEBUG_SCREAM" "0" }}
-xdebug.show_error_trace = {{ getenv "PHP_XDEBUG_SHOW_ERROR_TRACE" "0" }}
-xdebug.show_exception_trace = {{ getenv "PHP_XDEBUG_SHOW_EXCEPTION_TRACE" "0" }}
-xdebug.show_local_vars = {{ getenv "PHP_XDEBUG_SHOW_LOCAL_VARS" "0" }}
-xdebug.show_mem_delta = {{ getenv "PHP_XDEBUG_SHOW_MEM_DELTA" "0" }}
-xdebug.trace_enable_trigger = {{ getenv "PHP_XDEBUG_TRACE_ENABLE_TRIGGER" "0" }}
-xdebug.trace_enable_trigger_value = "{{ getenv "PHP_XDEBUG_TRACE_ENABLE_TRIGGER_VALUE" "" }}"
-xdebug.trace_format = {{ getenv "PHP_XDEBUG_TRACE_FORMAT" "0" }}
-xdebug.trace_options = {{ getenv "PHP_XDEBUG_TRACE_OPTIONS" "0" }}
-xdebug.trace_output_dir = {{ getenv "PHP_XDEBUG_TRACE_OUTPUT_DIR" "/tmp" }}
-xdebug.trace_output_name = {{ getenv "PHP_XDEBUG_TRACE_OUTPUT_NAME" "trace.%c" }}
-xdebug.var_display_max_children = {{ getenv "PHP_XDEBUG_VAR_DISPLAY_MAX_CHILDREN" "128" }}
-xdebug.var_display_max_data = {{ getenv "PHP_XDEBUG_VAR_DISPLAY_MAX_DATA" "512" }}
-xdebug.var_display_max_depth = {{ getenv "PHP_XDEBUG_VAR_DISPLAY_MAX_DEPTH" "3" }}
-{{ if getenv "PHP_XDEBUG_DUMP_COOKIE" }}
-xdebug.dump.COOKIE = {{ getenv "PHP_XDEBUG_DUMP_COOKIE" }}
-{{ end }}
-{{ if getenv "PHP_XDEBUG_DUMP_FILES" }}
-xdebug.dump.FILES = {{ getenv "PHP_XDEBUG_DUMP_FILES" }}
-{{ end }}
-{{ if getenv "PHP_XDEBUG_DUMP_GET" }}
-xdebug.dump.GET = {{ getenv "PHP_XDEBUG_DUMP_GET" }}
-{{ end }}
-{{ if getenv "PHP_XDEBUG_DUMP_POST" }}
-xdebug.dump.POST = {{ getenv "PHP_XDEBUG_DUMP_POST" }}
-{{ end }}
-{{ if getenv "PHP_XDEBUG_DUMP_REQUEST" }}
-xdebug.dump.REQUEST = {{ getenv "PHP_XDEBUG_DUMP_REQUEST" }}
-{{ end }}
-{{ if getenv "PHP_XDEBUG_DUMP_SERVER" }}
-xdebug.dump.SERVER = {{ getenv "PHP_XDEBUG_DUMP_SERVER" }}
-{{ end }}
-{{ if getenv "PHP_XDEBUG_DUMP_SESSION" }}
-xdebug.dump.SESSION = {{ getenv "PHP_XDEBUG_DUMP_SESSION" }}
-{{ end }}
-{{ if getenv "PHP_XDEBUG_IDEKEY" }}
-xdebug.idekey = {{ getenv "PHP_XDEBUG_IDEKEY" }}
-{{ end }}
-{{ end }}
\ No newline at end of file
diff --git a/5.6/templates/docker-php.ini.tpl b/5.6/templates/docker-php.ini.tpl
deleted file mode 100644
index c944dc10..00000000
--- a/5.6/templates/docker-php.ini.tpl
+++ /dev/null
@@ -1,36 +0,0 @@
-; This file user only to override default php.ini values
-; BASIC SETTINGS: $PHP_INI_DIR/php.ini
-; PHP-FPM SETTINGS: /usr/local/etc/php-fpm.d/zz-www.conf
-
-[PHP]
-realpath_cache_size = {{ getenv "PHP_REALPATH_CACHE_SIZE" "16k" }}
-realpath_cache_ttl = {{ getenv "PHP_REALPATH_CACHE_TTL" "120" }}
-memory_limit = {{ getenv "PHP_CLI_MEMORY_LIMIT" "-1" }}
-error_reporting = {{ getenv "PHP_ERROR_REPORTING" "E_ALL" }}
-log_errors_max_len = {{ getenv "PHP_LOG_ERRORS_MAX_LEN" "1024" }}
-track_errors = {{ getenv "PHP_TRACK_ERRORS" "On" }}
-error_log = /proc/self/fd/2
-
-[Date]
-date.timezone = {{ getenv "PHP_DATE_TIMEZONE" "UTC"}}
-
-[Pdo_mysql]
-pdo_mysql.cache_size = {{ getenv "PHP_PDO_MYSQL_CACHE_SIZE" "2000" }}
-
-[mail function]
-sendmail_path = {{ getenv "PHP_SENDMAIL_PATH" "/bin/true" }}
-
-[MySQL]
-mysql.cache_size = {{ getenv "PHP_MYSQL_CACHE_SIZE" "2000" }}
-
-[MySQLi]
-mysqli.cache_size = {{ getenv "PHP_MYSQLI_CACHE_SIZE" "2000" }}
-
-[Assertion]
-zend.assertions = {{ getenv "PHP_ZEND_ASSERTIONS" "1" }}
-assert.active = {{ getenv "PHP_ASSERT_ACTIVE" "On" }}
-
-[mbstring]
-mbstring.http_input = {{ getenv "PHP_MBSTRING_HTTP_INPUT" "" }}
-mbstring.http_output = {{ getenv "PHP_MBSTRING_HTTP_OUTPUT" "" }}
-mbstring.encoding_translation = {{ getenv "PHP_MBSTRING_ENCODING_TRANSLATION" "Off" }}
diff --git a/5.6/templates/ssh_config.tpl b/5.6/templates/ssh_config.tpl
deleted file mode 100644
index 69bc5a2b..00000000
--- a/5.6/templates/ssh_config.tpl
+++ /dev/null
@@ -1,55 +0,0 @@
-# $OpenBSD: ssh_config,v 1.30 2016/02/20 23:06:23 sobrado Exp $
-
-# This is the ssh client system-wide configuration file. See
-# ssh_config(5) for more information. This file provides defaults for
-# users, and the values can be changed in per-user configuration files
-# or on the command line.
-
-# Configuration data is parsed as follows:
-# 1. command line options
-# 2. user-specific file
-# 3. system-wide file
-# Any configuration value is only changed the first time it is set.
-# Thus, host-specific definitions should be at the beginning of the
-# configuration file, and defaults at the end.
-
-# Site-wide defaults for some commonly used options. For a comprehensive
-# list of available options, their meanings and defaults, please see the
-# ssh_config(5) man page.
-
-# Host *
-# ForwardAgent no
-# ForwardX11 no
-# RhostsRSAAuthentication no
-# RSAAuthentication yes
-# PasswordAuthentication yes
-# HostbasedAuthentication no
-# GSSAPIAuthentication no
-# GSSAPIDelegateCredentials no
-# BatchMode no
-# CheckHostIP yes
-# AddressFamily any
-# ConnectTimeout 0
-# StrictHostKeyChecking ask
-# IdentityFile ~/.ssh/identity
-# IdentityFile ~/.ssh/id_rsa
-# IdentityFile ~/.ssh/id_dsa
-# IdentityFile ~/.ssh/id_ecdsa
-# IdentityFile ~/.ssh/id_ed25519
-# Port 22
-# Protocol 2
-# Cipher 3des
-# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
-# MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
-# EscapeChar ~
-# Tunnel no
-# TunnelDevice any:any
-# PermitLocalCommand no
-# VisualHostKey no
-# ProxyCommand ssh -q -W %h:%p gateway.example.com
-# RekeyLimit 1G 1h
-
-{{ if getenv "SSH_DISABLE_STRICT_KEY_CHECKING" }}
-Host *
- StrictHostKeyChecking no
-{{ end }}
\ No newline at end of file
diff --git a/5.6/templates/sshd_config.tpl b/5.6/templates/sshd_config.tpl
deleted file mode 100644
index ed4b4a99..00000000
--- a/5.6/templates/sshd_config.tpl
+++ /dev/null
@@ -1,121 +0,0 @@
-# $OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $
-
-# This is the sshd server system-wide configuration file. See
-# sshd_config(5) for more information.
-
-# This sshd was compiled with PATH=/bin:/usr/bin:/sbin:/usr/sbin
-
-# The strategy used for options in the default sshd_config shipped with
-# OpenSSH is to specify options with their default value where
-# possible, but leave them commented. Uncommented options override the
-# default value.
-
-#Port 22
-#AddressFamily any
-#ListenAddress 0.0.0.0
-#ListenAddress ::
-
-{{ $keys_dir := (getenv "SSHD_HOST_KEYS_DIR" "/etc/ssh") }}
-HostKey {{ $keys_dir }}/ssh_host_rsa_key
-HostKey {{ $keys_dir }}/ssh_host_dsa_key
-HostKey {{ $keys_dir }}/ssh_host_ecdsa_key
-HostKey {{ $keys_dir }}/ssh_host_ed25519_key
-
-# Ciphers and keying
-#RekeyLimit default none
-
-# Logging
-#SyslogFacility AUTH
-LogLevel {{ getenv "SSHD_LOG_LEVEL" "INFO" }}
-
-# Authentication:
-
-#LoginGraceTime 2m
-#PermitRootLogin prohibit-password
-#StrictModes yes
-#MaxAuthTries 6
-#MaxSessions 10
-
-PubkeyAuthentication yes
-
-# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
-# but this is overridden so installations will only check .ssh/authorized_keys
-AuthorizedKeysFile .ssh/authorized_keys
-
-#AuthorizedPrincipalsFile none
-
-#AuthorizedKeysCommand none
-#AuthorizedKeysCommandUser nobody
-
-# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
-#HostbasedAuthentication no
-# Change to yes if you don't trust ~/.ssh/known_hosts for
-# HostbasedAuthentication
-#IgnoreUserKnownHosts no
-# Don't read the user's ~/.rhosts and ~/.shosts files
-#IgnoreRhosts yes
-
-# To disable tunneled clear text passwords, change to no here!
-PasswordAuthentication {{ getenv "SSHD_PASSWORD_AUTHENTICATION" "no" }}
-#PermitEmptyPasswords no
-
-# Change to no to disable s/key passwords
-#ChallengeResponseAuthentication yes
-
-# Kerberos options
-#KerberosAuthentication no
-#KerberosOrLocalPasswd yes
-#KerberosTicketCleanup yes
-#KerberosGetAFSToken no
-
-# GSSAPI options
-#GSSAPIAuthentication no
-#GSSAPICleanupCredentials yes
-
-# UsePAM NOT SUPPORTED
-
-#AllowAgentForwarding yes
-#AllowTcpForwarding yes
-GatewayPorts {{ getenv "SSHD_GATEWAY_PORTS" "no" }}
-#X11Forwarding no
-#X11DisplayOffset 10
-#X11UseLocalhost yes
-#PermitTTY yes
-#PrintMotd yes
-#PrintLastLog yes
-#TCPKeepAlive yes
-#UseLogin no
-PermitUserEnvironment {{ getenv "SSHD_PERMIT_USER_ENV" "no" }}
-#Compression delayed
-#ClientAliveInterval 0
-#ClientAliveCountMax 3
-UseDNS {{ getenv "SSHD_USE_DNS" "yes" }}
-#PidFile /run/sshd.pid
-#MaxStartups 10:30:100
-#PermitTunnel no
-#ChrootDirectory none
-#VersionAddendum none
-
-# no default banner path
-#Banner none
-
-# override default of no subsystems
-Subsystem sftp /usr/lib/ssh/sftp-server
-
-# the following are HPN related configuration options
-# tcp receive buffer polling. disable in non autotuning kernels
-#TcpRcvBufPoll yes
-
-# disable hpn performance boosts
-#HPNDisabled no
-
-# buffer size for hpn to non-hpn connections
-#HPNBufferSize 2048
-
-
-# Example of overriding settings on a per-user basis
-#Match User anoncvs
-# X11Forwarding no
-# AllowTcpForwarding no
-# PermitTTY no
-# ForceCommand cvs server
diff --git a/5.6/templates/zz-www.conf.tpl b/5.6/templates/zz-www.conf.tpl
deleted file mode 100644
index ba0e7edb..00000000
--- a/5.6/templates/zz-www.conf.tpl
+++ /dev/null
@@ -1,48 +0,0 @@
-[global]
-log_level = {{ getenv "PHP_FPM_LOG_LEVEL" "notice" }}
-
-[www]
-clear_env = {{ getenv "PHP_FPM_CLEAR_ENV" "yes" }}
-pm = {{ getenv "PHP_FPM_PM" "dynamic" }}
-pm.max_children = {{ getenv "PHP_FPM_PM_MAX_CHILDREN" "8" }}
-pm.start_servers = {{ getenv "PHP_FPM_PM_START_SERVERS" "2" }}
-pm.min_spare_servers = {{ getenv "PHP_FPM_PM_MIN_SPARE_SERVERS" "1" }}
-pm.max_spare_servers = {{ getenv "PHP_FPM_PM_MAX_SPARE_SERVERS" "3" }}
-pm.max_requests = {{ getenv "PHP_FPM_PM_MAX_REQUESTS" "500" }}
-{{ if getenv "PHP_FPM_PM_STATUS_PATH" }}
-pm.status_path = {{ getenv "PHP_FPM_PM_STATUS_PATH" }}
-{{ end }}
-{{ if getenv "PHP_FPM_REQUEST_SLOWLOG_TIMEOUT" }}
-slowlog = /proc/self/fd/2
-request_slowlog_timeout = {{ getenv "PHP_FPM_REQUEST_SLOWLOG_TIMEOUT" }}
-{{ end }}
-
-php_value[display_errors] = {{ getenv "PHP_DISPLAY_ERRORS" "On" }}
-php_value[display_startup_errors] = {{ getenv "PHP_DISPLAY_STARTUP_ERRORS" "On" }}
-php_value[expose_php] = {{ getenv "PHP_EXPOSE" "Off" }}
-php_value[max_execution_time] = {{ getenv "PHP_MAX_EXECUTION_TIME" "120" }}
-php_value[max_input_time] = {{ getenv "PHP_MAX_INPUT_TIME" "60" }}
-php_value[max_input_vars] = {{ getenv "PHP_MAX_INPUT_VARS" "2000" }}
-php_value[memory_limit] = {{ getenv "PHP_MEMORY_LIMIT" "512M" }}
-php_value[post_max_size] = {{ getenv "PHP_POST_MAX_SIZE" "32M" }}
-php_value[upload_max_filesize] = {{ getenv "PHP_UPLOAD_MAX_FILESIZE" "32M" }}
-php_value[max_file_uploads] = {{ getenv "PHP_MAX_FILE_UPLOADS" "20" }}
-php_value[output_buffering] = {{ getenv "PHP_OUTPUT_BUFFERING" "4096" }}
-php_value[always_populate_raw_post_data] = {{ getenv "PHP_ALWAYS_POPULATE_RAW_POST_DATA" "0" }}
-php_value[session.auto_start] = {{ getenv "PHP_SESSION_AUTO_START" "0" }}
-
-{{ if (getenv "PHP_FPM_USER") }}user = {{ getenv "PHP_FPM_USER" }}{{ end }}
-{{ if (getenv "PHP_FPM_GROUP") }}group = {{ getenv "PHP_FPM_GROUP" }}{{ end }}
-
-{{ if getenv "PHP_FPM_ENV_VARS" }}{{ range jsonArray (getenv "PHP_FPM_ENV_VARS") }}{{ if getenv . }}
-env[{{.}}] = {{ getenv . }}{{ end }}{{ end }}{{ end }}
-
-; Pool for health-check pings to avoid spam in access log.
-[ping]
-pm = static
-pm.max_children = 1
-listen = [::]:9001
-ping.path = "/ping"
-
-{{ if (getenv "PHP_FPM_USER") }}user = {{ getenv "PHP_FPM_USER" }}{{ end }}
-{{ if (getenv "PHP_FPM_GROUP") }}group = {{ getenv "PHP_FPM_GROUP" }}{{ end }}
diff --git a/5.6/test.sh b/5.6/test.sh
deleted file mode 100755
index 8bd14fb9..00000000
--- a/5.6/test.sh
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/bin/bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-git_url=git@bitbucket.org:wodby/php-git-test.git
-
-wait_for_cron() {
- executed=0
-
- for i in $(seq 1 13); do
- if docker_exec crond cat /home/www-data/cron | grep -q "test"; then
- executed=1
- break
- fi
- echo 'Waiting for cron execution...'
- sleep 5
- done
-
- if [[ "${executed}" -eq '0' ]]; then
- echo >&2 'Cron failed.'
- exit 1
- fi
-
- echo 'Cron has been executed!'
-}
-
-docker_exec() {
- docker-compose -f test/docker-compose.yml exec "${@}"
-}
-
-run_action() {
- docker_exec "${1}" make "${@:2}" -f /usr/local/bin/actions.mk
-}
-
-docker-compose -f test/docker-compose.yml up -d
-run_action nginx check-ready max_try=10
-run_action php check-ready max_try=10
-
-# PHP tools
-docker_exec php tests.sh
-
-# SSH
-echo -n "Testing ssh... "
-docker_exec php touch /home/www-data/.ssh/known_hosts
-docker_exec php ssh www-data@sshd cat /home/www-data/.ssh/authorized_keys | grep -q admin@wodby.com
-echo "OK"
-
-# Git actions
-echo -n "Running git actions... "
-docker_exec php bash -c 'echo -e "Host bitbucket.org\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config'
-run_action php git-clone url="${git_url}" branch=master
-run_action php git-checkout target=develop
-echo "OK"
-
-# PHP-FPM
-echo -n "Checking PHP-FPM... "
-docker_exec php curl nginx | grep -q "Hello World!"
-echo "OK"
-
-# Walter CD
-echo -n "Running walter scripts... "
-run_action php walter
-docker_exec php cat ./walter-shell-stage
-docker_exec php cat ./walter-command-stage
-echo "OK"
-
-# Crond
-wait_for_cron
-
-docker-compose -f test/docker-compose.yml down
diff --git a/5.6/test/docker-compose.yml b/5.6/test/docker-compose.yml
deleted file mode 100644
index 0792fc08..00000000
--- a/5.6/test/docker-compose.yml
+++ /dev/null
@@ -1,93 +0,0 @@
-version: "2"
-
-services:
- nginx:
- image: wodby/nginx:1.13
- environment:
- NGINX_BACKEND_HOST: php
- volumes:
- - ./nginx.conf:/etc/gotpl/default-vhost.conf.tpl
- depends_on:
- - php
-
- sshd:
- image: $IMAGE
- command: sudo /usr/sbin/sshd -De
- environment:
- SSH_PUBLIC_KEYS: |-
- ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC4mQ9wfvufRcDQ4LsoCYEyDL4LNsvP8dWKWMQKrnJ8k09IQm7mnvyzid8zxNJpQYxX12foC0+BttjejWVj67vf1if7rDHb\/e0oX7yQp4ji3QTjDNPDaOR\/eTOCNv1C5Lfj3n7D1G7O2dOiw8lAoSalGy6nltuTYY9EXbkl1dXaCG7qbQRVJEJdZ6x2oJ8FubJO6wjZvj9P759ziLVmWAqtzUgIQVlbv0nqSoq16Ug381sfnRvsHO1fXGhdgHGQ0WP720p5cBHxG+62HJROah5b7gahXidC2Lo6kdnLb5FOzZjRJO1aDiKgry\/GoNNijs6D5xwLtn44HoHMe0eyUw7lQCrWZwvNmdfvIecr+ZJNwT8cbZ2Cf5y0SqD4JZpcolR5FKuQluaVMdOvJCa8A\/BzvRqIeNLmZuHFRvruu2VTIHHZFR2CFgH9F+G\/KyBnmQwV\/FgqN6sy1MAuFmyizL7sJHVL3tSaMPSs423A+SLWYkXLxpUPjo2J5W2ImZYq97AQaHcArvrhKS2MwbBFGwaxglcq5t8Ss6Df3fEZUWGLHJSdOv\/fn\/+CNOiI7hjj3v5mHaxxnC27MOHmJlrqmCA3OXuQ9mZG\/hSfj2vPKF+xFUarqqsp4zVsDH71bY2Q+zHpyncIFnyhaiEba9gbvmUVOfUyYglkJ6TGF5xAhpDFpQ== admin@wodby.com"]
-
- php:
- image: $IMAGE
- environment:
- SSH_DISABLE_STRICT_KEY_CHECKING: 1
- PHP_XDEBUG: 1
- PHP_BLACKFIRE: 1
- SSH_PRIVATE_KEY: |-
- -----BEGIN RSA PRIVATE KEY-----
- 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
- -----END RSA PRIVATE KEY-----
- volumes:
- - ./tests.sh:/usr/local/bin/tests.sh
- - ./php_modules:/home/www-data/php_modules
- depends_on:
- - sshd
-
- crond:
- image: $IMAGE
- command: sudo -E crond -f -d 0
- environment:
- CRONTAB_ENV: test
- CRONTAB: |-
- # min hour day month weekday command
- */1 * * * * echo "$${CRONTAB_ENV}" > /home/www-data/cron
- depends_on:
- - sshd
diff --git a/5.6/test/nginx.conf b/5.6/test/nginx.conf
deleted file mode 100644
index a89ce5ba..00000000
--- a/5.6/test/nginx.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-server {
- server_name default;
- listen 80;
-
- root /var/www/html/;
- index index.php;
-
- fastcgi_param REQUEST_METHOD $request_method;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- fastcgi_index index.php;
-
- location / {
- fastcgi_pass php:9000;
- }
-}
diff --git a/5.6/test/tests.sh b/5.6/test/tests.sh
deleted file mode 100755
index 282e8d21..00000000
--- a/5.6/test/tests.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-php -m > ~/php_modules.tmp
-echo -n "Checking PHP modules... "
-
-# Modify copy, keep the mounted version untouched.
-cp ~/php_modules ~/expected_modules
-
-if [[ "${PHP_DEBUG}" == 1 ]]; then
- sed -i '/blackfire/d' ~/expected_modules
-fi
-
-if ! cmp -s ~/php_modules.tmp ~/expected_modules; then
- echo "Error. PHP modules are not identical."
- diff ~/php_modules.tmp ~/expected_modules
- exit 1
-fi
-
-echo "OK"
-
-echo -n "Checking composer... "
-composer --version | grep -q 'Composer version'
-echo "OK"
-
-echo -n "Checking walter... "
-walter -v | grep -q 'Walter version'
-echo "OK"
-
-echo -n "Checking PHPUnit... "
-phpunit -version | grep -q 'PHPUnit'
-echo "OK"
diff --git a/7.0/Dockerfile b/7.0/Dockerfile
deleted file mode 100644
index fc484c76..00000000
--- a/7.0/Dockerfile
+++ /dev/null
@@ -1,269 +0,0 @@
-ARG FROM_TAG
-
-FROM wodby/base-php:${FROM_TAG}
-
-ARG PHP_DEBUG
-
-ENV PHP_DEBUG="${PHP_DEBUG:-0}" \
- SSHD_PERMIT_USER_ENV="yes" \
- PHP_PRESTISSIMO_VER="0.3" \
- PHP_UNIT_VER="6.4" \
- WALTER_VER="1.3.0" \
-
- EXT_AMQP_VER="1.9.1" \
- EXT_APCU_VER="5.1.8" \
- EXT_AST_VER="0.1.6" \
- EXT_GEOIP_VER="1.1.1" \
- EXT_IMAGICK_VER="3.4.3" \
- EXT_MEMCACHED_VER="3.0.3" \
- EXT_MONGODB_VER="1.3.2" \
- EXT_OAUTH_VER="2.0.2" \
- EXT_REDIS_VER="3.1.4" \
- EXT_XDEBUG_VER="2.5.5" \
- EXT_YAML_VER="2.0.2" \
-
- C_CLIENT_VER="2007f-r6" \
- FREETYPE_VER="2.7.1-r1" \
- GEOIP_VER="1.6.10-r0" \
- ICU_LIBS_VER="58.2-r2" \
- IMAGEMAGICK_VER="7.0.5.10-r0" \
- LIBBZ2_VER="1.0.6-r5" \
- LIBJPEG_TURBO_VER="1.5.1-r0" \
- LIBLDAP_VER="2.4.44-r5" \
- LIBLTDL_VER="2.4.6-r1" \
- LIBMEMCACHED_LIBS_VER="1.0.18-r1" \
- LIBMCRYPT_VER="2.5.8-r7" \
- LIBPNG_VER="1.6.29-r1" \
- LIBXSLT_VER="1.1.29-r3" \
- MARIADB_CLIENT_VER="10.1.26-r0" \
- POSTGRESQL_CLIENT_VER="9.6.5-r0" \
- RABBITMQ_C_VER="0.8.0-r2" \
- YAML_VER="0.1.7-r0"
-
-ENV EXT_AST_URL="https://github.com/nikic/php-ast/archive/v${EXT_AST_VER}.tar.gz" \
- EXT_UPLOADPROGRESS_URL="https://github.com/wodby/pecl-php-uploadprogress/archive/latest.tar.gz" \
- WALTER_URL="https://github.com/walter-cd/walter/releases/download/v${WALTER_VER}/walter_${WALTER_VER}_linux_amd64.tar.gz" \
- BLACKFIRE_URL="https://blackfire.io/api/v1/releases/probe/php/alpine/amd64" \
-
- APP_ROOT="/var/www/html" \
- PATH="/home/www-data/.composer/vendor/bin:${PATH}"
-
-RUN set -xe && \
-
- # Recreate user with correct params
- deluser www-data && \
- addgroup -g 82 -S www-data && \
- adduser -u 82 -D -S -s /bin/bash -G www-data www-data && \
- sed -i '/^www-data/s/!/*/' /etc/shadow && \
- echo "PS1='\w\$ '" >> /home/www-data/.bashrc && \
-
- apk add --update --no-cache --virtual .php-rundeps \
- c-client=${C_CLIENT_VER} \
- fcgi \
- freetype=${FREETYPE_VER} \
- geoip=${GEOIP_VER} \
- git \
- icu-libs=${ICU_LIBS_VER} \
- imagemagick=${IMAGEMAGICK_VER} \
- less \
- libbz2=${LIBBZ2_VER} \
- libjpeg-turbo=${LIBJPEG_TURBO_VER} \
- libldap=${LIBLDAP_VER} \
- libltdl=${LIBLTDL_VER} \
- libmemcached-libs=${LIBMEMCACHED_LIBS_VER} \
- libmcrypt=${LIBMCRYPT_VER} \
- libpng=${LIBPNG_VER} \
- libxslt=${LIBXSLT_VER} \
- make \
- mariadb-client=${MARIADB_CLIENT_VER} \
- nano \
- openssh \
- openssh-client \
- patch \
- postgresql-client=${POSTGRESQL_CLIENT_VER} \
- rabbitmq-c=${RABBITMQ_C_VER} \
- rsync \
- su-exec \
- sudo \
- tig \
- tmux \
- yaml=${YAML_VER} && \
-
- apk add --update --no-cache --virtual .build-deps \
- autoconf \
- cmake \
- build-base \
- bzip2-dev \
- freetype-dev \
- geoip-dev \
- icu-dev \
- imagemagick-dev \
- imap-dev \
- jpeg-dev \
- libjpeg-turbo-dev \
- libmemcached-dev \
- libmcrypt-dev \
- libpng-dev \
- libtool \
- libxslt-dev \
- openldap-dev \
- pcre-dev \
- postgresql-dev \
- rabbitmq-c-dev \
- yaml-dev && \
-
- if [[ $PHP_DEBUG == 1 ]]; then \
- apk add --update --no-cache --virtual .debug-tools gdb; \
- fi && \
-
- docker-php-source extract && \
-
- docker-php-ext-install \
- bcmath \
- bz2 \
- calendar \
- exif \
- imap \
- intl \
- ldap \
- mcrypt \
- mysqli \
- opcache \
- pcntl \
- pdo_mysql \
- pdo_pgsql \
- pgsql \
- phar \
- soap \
- sockets \
- xmlrpc \
- xsl \
- zip && \
-
- # GD
- docker-php-ext-configure gd \
- --with-gd \
- --with-freetype-dir=/usr/include/ \
- --with-png-dir=/usr/include/ \
- --with-jpeg-dir=/usr/include/ && \
- NPROC=$(getconf _NPROCESSORS_ONLN) && \
- docker-php-ext-install -j${NPROC} gd && \
-
- # PECL extensions
- pecl config-set php_ini "${PHP_INI_DIR}/php.ini" && \
-
- pecl install \
- amqp-${EXT_AMQP_VER} \
- apcu-${EXT_APCU_VER} \
- geoip-${EXT_GEOIP_VER} \
- imagick-${EXT_IMAGICK_VER} \
- memcached-${EXT_MEMCACHED_VER} \
- mongodb-${EXT_MONGODB_VER} \
- oauth-${EXT_OAUTH_VER} \
- redis-${EXT_REDIS_VER} \
- xdebug-${EXT_XDEBUG_VER} \
- yaml-${EXT_YAML_VER} && \
-
- docker-php-ext-enable \
- amqp \
- apcu \
- imagick \
- geoip \
- memcached \
- mongodb \
- oauth \
- redis \
- xdebug \
- yaml && \
-
- # Blackfire extension
- mkdir -p /tmp/blackfire && \
- version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") && \
- wget -qO- "${BLACKFIRE_URL}/${version}" | tar xz --no-same-owner -C /tmp/blackfire && \
- mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so && \
-
- # Uploadprogress
- mkdir -p /usr/src/php/ext/uploadprogress && \
- wget -qO- ${EXT_UPLOADPROGRESS_URL} | tar xz --strip-components=1 -C /usr/src/php/ext/uploadprogress && \
- docker-php-ext-configure uploadprogress && \
- docker-php-ext-install uploadprogress && \
-
- # AST
- mkdir -p /usr/src/php/ext/ast && \
- wget -qO- ${EXT_AST_URL} | tar xz --strip-components=1 -C /usr/src/php/ext/ast && \
- docker-php-ext-configure ast && \
- docker-php-ext-install ast && \
-
- # Install composer
- wget -qO- https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && \
-
- # Plugin for parallel install
- su-exec www-data composer global require hirak/prestissimo:^${PHP_PRESTISSIMO_VER} && \
-
- # Install PHPUnit
- wget -qO- https://phar.phpunit.de/phpunit-${PHP_UNIT_VER}.phar > /usr/local/bin/phpunit && \
- chmod +x /usr/local/bin/phpunit && \
-
- # Install Walter
- wget -qO- ${WALTER_URL} | tar xz -C /tmp/ && \
- mv /tmp/walter_linux_amd64/walter /usr/local/bin && \
-
- # Add composer bins to $PATH
- su-exec www-data echo "export PATH=/home/www-data/.composer/vendor/bin:${PATH}" > /home/www-data/.profile && \
-
- # Configure sudoers
- { \
- echo -n 'www-data ALL=(root) NOPASSWD:SETENV: ' ; \
- echo -n '/usr/local/bin/sshd-generate-keys.sh, ' ; \
- echo -n '/usr/local/bin/fix-permissions.sh, ' ; \
- echo -n '/usr/sbin/sshd, ' ; \
- echo '/usr/sbin/crond' ; \
- } | tee /etc/sudoers.d/www-data && \
-
- # Configure ldap
- echo "TLS_CACERTDIR /etc/ssl/certs/" >> /etc/openldap/ldap.conf && \
-
- # We run php-fpm as non root
- sed -i '/^user = www-data/d;/^group = www-data/d' /usr/local/etc/php-fpm.d/www.conf* && \
-
- # Create required directories and fix permissions
- mkdir -p ${APP_ROOT} && \
- su-exec www-data mkdir /home/www-data/.ssh && \
-
- touch /etc/ssh/sshd_config && \
- chown www-data: /etc/ssh/sshd_config && \
-
- rm /etc/crontabs/root && \
- touch /etc/crontabs/www-data && \
- chown root:www-data /etc/crontabs/www-data && \
- chmod 660 /etc/crontabs/www-data && \
-
- chown -R www-data:www-data /var/www "${PHP_INI_DIR}/conf.d" /usr/local/etc/php-fpm.d/ /home/www-data/.profile && \
-
- # Cleanup
- su-exec www-data composer clear-cache && \
- docker-php-source delete && \
- apk del .build-deps && \
- pecl clear-cache && \
-
- rm -rf \
- /usr/src/php.tar.xz \
- /usr/src/php/ext/ast \
- /usr/src/php/ext/uploadprogress \
- /usr/include/php \
- /usr/lib/php/build \
- /tmp/* \
- /root/.composer
-
-USER www-data
-
-WORKDIR ${APP_ROOT}
-EXPOSE 9000
-
-COPY templates /etc/gotpl/
-COPY docker-entrypoint.sh /
-COPY actions /usr/local/bin/
-COPY php.ini ${PHP_INI_DIR}
-
-ENTRYPOINT ["/docker-entrypoint.sh"]
-CMD ["php-fpm"]
diff --git a/7.0/Makefile b/7.0/Makefile
deleted file mode 100644
index 30c481e0..00000000
--- a/7.0/Makefile
+++ /dev/null
@@ -1,49 +0,0 @@
--include env_make
-
-PHP_VER ?= 7.0
-TAG ?= $(PHP_VER)
-
-REPO = wodby/php
-NAME = php-$(PHP_VER)
-FROM_TAG = 7.0.25
-
-PHP_DEBUG ?= 0
-
-ifneq ($(PHP_DEBUG), 0)
- override TAG := $(TAG)-debug
- FROM_TAG := $(FROM_TAG)-debug
- NAME := $(NAME)-debug
-endif
-
-.PHONY: build test push shell run start stop logs clean release
-
-default: build
-
-build:
- docker build -t $(REPO):$(TAG) --build-arg FROM_TAG=$(FROM_TAG) --build-arg PHP_DEBUG=$(PHP_DEBUG) ./
-
-test:
- IMAGE=$(REPO):$(TAG) ./test.sh
-
-push:
- docker push $(REPO):$(TAG)
-
-shell:
- docker run --rm --name $(NAME) -i -t $(PORTS) $(VOLUMES) $(ENV) $(REPO):$(TAG) /bin/bash
-
-run:
- docker run --rm --name $(NAME) $(PORTS) $(VOLUMES) $(ENV) $(REPO):$(TAG) $(CMD)
-
-start:
- docker run -d --name $(NAME) $(PORTS) $(VOLUMES) $(ENV) $(REPO):$(TAG)
-
-stop:
- docker stop $(NAME)
-
-logs:
- docker logs $(NAME)
-
-clean:
- -docker rm -f $(NAME)
-
-release: build push
diff --git a/7.0/actions/actions.mk b/7.0/actions/actions.mk
deleted file mode 100644
index 73a9c9f6..00000000
--- a/7.0/actions/actions.mk
+++ /dev/null
@@ -1,37 +0,0 @@
-.PHONY: git-clone git-checkout walter check-ready check-live
-
-check_defined = \
- $(strip $(foreach 1,$1, \
- $(call __check_defined,$1,$(strip $(value 2)))))
-__check_defined = \
- $(if $(value $1),, \
- $(error Required parameter is missing: $1$(if $2, ($2))))
-
-host ?= localhost
-max_try ?= 1
-wait_seconds ?= 1
-delay_seconds ?= 0
-is_hash ?= 0
-branch = ""
-# Some symbols in env vars break cgi-fcgi
-command ?= env -i SCRIPT_NAME="/ping" SCRIPT_FILENAME="/ping" REQUEST_METHOD=GET cgi-fcgi -bind -connect "${host}":9001 | grep -q "pong"
-service = PHP-FPM
-
-default: check-ready
-
-git-clone:
- $(call check_defined, url)
- git-clone.sh $(url) $(branch)
-
-git-checkout:
- $(call check_defined, target)
- git-checkout.sh $(target) $(is_hash)
-
-walter:
- walter.sh
-
-check-ready:
- wait-for.sh "$(command)" $(service) $(host) $(max_try) $(wait_seconds) $(delay_seconds)
-
-check-live:
- @echo "OK"
diff --git a/7.0/actions/git-checkout.sh b/7.0/actions/git-checkout.sh
deleted file mode 100755
index a3f6865e..00000000
--- a/7.0/actions/git-checkout.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-target=$1
-is_hash=$2
-
-cd "${APP_ROOT}"
-git stash
-git fetch --all
-git checkout "${target}"
-
-if [[ "${is_hash}" -eq '0' ]]; then
- git pull origin "${target}"
-fi
diff --git a/7.0/actions/git-clone.sh b/7.0/actions/git-clone.sh
deleted file mode 100755
index 63cbf83d..00000000
--- a/7.0/actions/git-clone.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-url=$1
-branch=$2
-
-if [[ -n "${branch}" ]]; then
- git clone -b "${branch}" "${url}" "${APP_ROOT}"
-else
- git clone "${url}" "${APP_ROOT}"
-fi
diff --git a/7.0/actions/sshd-generate-keys.sh b/7.0/actions/sshd-generate-keys.sh
deleted file mode 100755
index 5c0e79d4..00000000
--- a/7.0/actions/sshd-generate-keys.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-dir="${1:-/etc/ssh}"
-
-mkdir -p "${dir}"
-ssh-keygen -qb 2048 -t rsa -N "" -f "${dir}/ssh_host_rsa_key"
-chmod 0600 "${dir}/ssh_host_rsa_key"
-chmod 0644 "${dir}/ssh_host_rsa_key.pub"
diff --git a/7.0/actions/walter.sh b/7.0/actions/walter.sh
deleted file mode 100755
index e928d759..00000000
--- a/7.0/actions/walter.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-if [[ -f "${APP_ROOT}/wodby.yml" ]]; then
- walter -c "${APP_ROOT}/wodby.yml"
-fi
\ No newline at end of file
diff --git a/7.0/docker-entrypoint.sh b/7.0/docker-entrypoint.sh
deleted file mode 100755
index 3f5707f4..00000000
--- a/7.0/docker-entrypoint.sh
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-SSH_DIR=/home/www-data/.ssh
-
-_backwards_compatibility() {
- declare -A vars
- vars[PHP_APCU_ENABLE]="PHP_APCU_ENABLED"
- vars[PHP_FPM_SLOWLOG_TIMEOUT]="PHP_FPM_REQUEST_SLOWLOG_TIMEOUT"
- vars[PHP_FPM_MAX_CHILDREN]="PHP_FPM_PM_MAX_CHILDREN"
- vars[PHP_FPM_START_SERVERS]="PHP_FPM_PM_START_SERVERS"
- vars[PHP_FPM_MIN_SPARE_SERVERS]="PHP_FPM_PM_MIN_SPARE_SERVERS"
- vars[PHP_FPM_MAX_SPARE_SERVERS]="PHP_FPM_PM_MAX_SPARE_SERVERS"
- vars[PHP_FPM_MAX_REQUESTS]="PHP_FPM_PM_MAX_REQUESTS"
- vars[PHP_FPM_STATUS_PATH]="PHP_FPM_PM_STATUS_PATH"
-
- for i in "${!vars[@]}"; do
- export "$i"="${!vars[$i]}"
- done
-}
-
-exec_tpl() {
- if [[ -f "/etc/gotpl/$1" ]]; then
- gotpl "/etc/gotpl/$1" > "$2"
- fi
-}
-
-validate_dirs() {
- if [[ -n "${PHP_XDEBUG_TRACE_OUTPUT_DIR}" ]]; then
- mkdir -p "${PHP_XDEBUG_TRACE_OUTPUT_DIR}"
- fi
-
- if [[ -n "${PHP_XDEBUG_PROFILER_OUTPUT_DIR}" ]]; then
- mkdir -p "${PHP_XDEBUG_PROFILER_OUTPUT_DIR}"
- fi
-}
-
-init_ssh_client() {
- exec_tpl "ssh_config.tpl" "${SSH_DIR}/config"
-
- if [[ -n "${SSH_PRIVATE_KEY}" ]]; then
- exec_tpl "id_rsa.tpl" "${SSH_DIR}/id_rsa"
- chmod -f 600 "${SSH_DIR}/id_rsa"
- unset SSH_PRIVATE_KEY
- fi
-}
-
-init_sshd() {
- exec_tpl "sshd_config.tpl" "/etc/ssh/sshd_config"
-
- if [[ -n "${SSH_PUBLIC_KEYS}" ]]; then
- exec_tpl "authorized_keys.tpl" "${SSH_DIR}/authorized_keys"
- unset SSH_PUBLIC_KEYS
- fi
-
- printenv | xargs -I{} echo {} | awk ' \
- BEGIN { FS = "=" }; { \
- if ($1 != "HOME" \
- && $1 != "PWD" \
- && $1 != "PATH" \
- && $1 != "SHLVL") { \
- \
- print ""$1"="$2"" \
- } \
- }' > "${SSH_DIR}/environment"
-
- sudo sshd-generate-keys.sh "${SSHD_HOST_KEYS_DIR}"
-}
-
-init_crond() {
- exec_tpl "crontab.tpl" "/etc/crontabs/www-data"
-}
-
-process_templates() {
- _backwards_compatibility
-
- exec_tpl "docker-php.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php.ini"
- exec_tpl "docker-php-ext-apcu.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"
- exec_tpl "docker-php-ext-geoip.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-geoip.ini"
- exec_tpl "docker-php-ext-opcache.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-opcache.ini"
- exec_tpl "docker-php-ext-xdebug.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-xdebug.ini"
- exec_tpl "zz-www.conf.tpl" "/usr/local/etc/php-fpm.d/zz-www.conf"
-
- if [[ "${PHP_DEBUG}" == 0 ]]; then
- exec_tpl "docker-php-ext-blackfire.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-blackfire.ini"
- fi
-
- sed -i '/^$/d' "${PHP_INI_DIR}/conf.d/docker-php-ext-xdebug.ini"
-}
-
-init_git() {
- git config --global user.email "${GIT_USER_EMAIL:-www-data@example.com}"
- git config --global user.name "${GIT_USER_NAME:-www-data}"
-}
-
-sudo fix-permissions.sh www-data www-data "${APP_ROOT}"
-validate_dirs
-init_ssh_client
-init_git
-process_templates
-
-if [[ "${@:1:2}" == "sudo /usr/sbin/sshd" ]]; then
- init_sshd
-elif [[ "${@:1:3}" == "sudo -E crond" ]]; then
- init_crond
-fi
-
-exec-init-scripts.sh
-
-if [[ $1 == "make" ]]; then
- exec "${@}" -f /usr/local/bin/actions.mk
-else
- exec /usr/local/bin/docker-php-entrypoint "${@}"
-fi
diff --git a/7.0/templates/authorized_keys.tpl b/7.0/templates/authorized_keys.tpl
deleted file mode 100644
index cd58124a..00000000
--- a/7.0/templates/authorized_keys.tpl
+++ /dev/null
@@ -1,2 +0,0 @@
-{{ range jsonArray (getenv "SSH_PUBLIC_KEYS") }}{{ . }}
-{{ end }}
\ No newline at end of file
diff --git a/7.0/templates/crontab.tpl b/7.0/templates/crontab.tpl
deleted file mode 100644
index 537bc190..00000000
--- a/7.0/templates/crontab.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{{ getenv "CRONTAB" }}
\ No newline at end of file
diff --git a/7.0/templates/docker-php-ext-apcu.ini.tpl b/7.0/templates/docker-php-ext-apcu.ini.tpl
deleted file mode 100644
index 4f9eeb0f..00000000
--- a/7.0/templates/docker-php-ext-apcu.ini.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-[apcu]
-extension=apcu.so
-apc.enabled = {{ getenv "PHP_APCU_ENABLED" "1" }}
-apc.shm_segments = {{ getenv "PHP_APCU_SHM_SEGMENTS" "1" }}
-apc.shm_size = {{ getenv "PHP_APCU_SHM_SIZE" "32M" }}
-apc.entries_hint = {{ getenv "PHP_APCU_ENTRIES_HINT" "4096" }}
-apc.ttl = {{ getenv "PHP_APCU_TTL" "0" }}
-apc.gc_ttl = {{ getenv "PHP_APCU_GC_TTL" "3600" }}
-apc.slam_defense = {{ getenv "PHP_APCU_SLAM_DEFENSE" "1" }}
-apc.enable_cli = {{ getenv "PHP_APCU_ENABLE_CLI" "0" }}
-apc.use_request_time = {{ getenv "PHP_APCU_USE_REQUEST_TIME" "1" }}
-apc.coredump_unmap = {{ getenv "PHP_APCU_COREDUMP_UNMAP" "0" }}
-apc.preload_path = {{ getenv "PHP_APCU_PRELOAD_PATH" "NULL" }}
diff --git a/7.0/templates/docker-php-ext-blackfire.ini.tpl b/7.0/templates/docker-php-ext-blackfire.ini.tpl
deleted file mode 100644
index e8387eaa..00000000
--- a/7.0/templates/docker-php-ext-blackfire.ini.tpl
+++ /dev/null
@@ -1,4 +0,0 @@
-{{ if getenv "PHP_BLACKFIRE" }}
-extension=blackfire.so
-blackfire.agent_socket=tcp://{{ getenv "PHP_BLACKFIRE_AGENT_HOST" "blackfire" }}:{{ getenv "PHP_BLACKFIRE_AGENT_PORT" "8707" }}
-{{ end }}
\ No newline at end of file
diff --git a/7.0/templates/docker-php-ext-geoip.ini.tpl b/7.0/templates/docker-php-ext-geoip.ini.tpl
deleted file mode 100644
index fdebfe33..00000000
--- a/7.0/templates/docker-php-ext-geoip.ini.tpl
+++ /dev/null
@@ -1,3 +0,0 @@
-[geoip]
-extension=geoip.so
-geoip.custom_directory = {{ getenv "PHP_GEOIP_CUSTOM_DIR" "" }}
\ No newline at end of file
diff --git a/7.0/templates/docker-php.ini.tpl b/7.0/templates/docker-php.ini.tpl
deleted file mode 100644
index 871c1755..00000000
--- a/7.0/templates/docker-php.ini.tpl
+++ /dev/null
@@ -1,28 +0,0 @@
-; This file user only to override default php.ini values
-; BASIC SETTINGS: $PHP_INI_DIR/php.ini
-; PHP-FPM SETTINGS: /usr/local/etc/php-fpm.d/zz-www.conf
-
-[PHP]
-realpath_cache_size = {{ getenv "PHP_REALPATH_CACHE_SIZE" "4096k" }}
-realpath_cache_ttl = {{ getenv "PHP_REALPATH_CACHE_TTL" "120" }}
-memory_limit = {{ getenv "PHP_CLI_MEMORY_LIMIT" "-1" }}
-error_reporting = {{ getenv "PHP_ERROR_REPORTING" "E_ALL" }}
-log_errors_max_len = {{ getenv "PHP_LOG_ERRORS_MAX_LEN" "1024" }}
-track_errors = {{ getenv "PHP_TRACK_ERRORS" "On" }}
-error_log = /proc/self/fd/2
-
-[Date]
-date.timezone = {{ getenv "PHP_DATE_TIMEZONE" "UTC"}}
-
-[Pdo_mysql]
-pdo_mysql.cache_size = {{ getenv "PHP_PDO_MYSQL_CACHE_SIZE" "2000" }}
-
-[mail function]
-sendmail_path = {{ getenv "PHP_SENDMAIL_PATH" "/bin/true" }}
-
-[MySQLi]
-mysqli.cache_size = {{ getenv "PHP_MYSQLI_CACHE_SIZE" "2000" }}
-
-[Assertion]
-zend.assertions = {{ getenv "PHP_ZEND_ASSERTIONS" "1" }}
-assert.active = {{ getenv "PHP_ASSERT_ACTIVE" "On" }}
diff --git a/7.0/templates/id_rsa.tpl b/7.0/templates/id_rsa.tpl
deleted file mode 100644
index 3fee5f15..00000000
--- a/7.0/templates/id_rsa.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{{ getenv "SSH_PRIVATE_KEY" }}
\ No newline at end of file
diff --git a/7.0/templates/ssh_config.tpl b/7.0/templates/ssh_config.tpl
deleted file mode 100644
index 69bc5a2b..00000000
--- a/7.0/templates/ssh_config.tpl
+++ /dev/null
@@ -1,55 +0,0 @@
-# $OpenBSD: ssh_config,v 1.30 2016/02/20 23:06:23 sobrado Exp $
-
-# This is the ssh client system-wide configuration file. See
-# ssh_config(5) for more information. This file provides defaults for
-# users, and the values can be changed in per-user configuration files
-# or on the command line.
-
-# Configuration data is parsed as follows:
-# 1. command line options
-# 2. user-specific file
-# 3. system-wide file
-# Any configuration value is only changed the first time it is set.
-# Thus, host-specific definitions should be at the beginning of the
-# configuration file, and defaults at the end.
-
-# Site-wide defaults for some commonly used options. For a comprehensive
-# list of available options, their meanings and defaults, please see the
-# ssh_config(5) man page.
-
-# Host *
-# ForwardAgent no
-# ForwardX11 no
-# RhostsRSAAuthentication no
-# RSAAuthentication yes
-# PasswordAuthentication yes
-# HostbasedAuthentication no
-# GSSAPIAuthentication no
-# GSSAPIDelegateCredentials no
-# BatchMode no
-# CheckHostIP yes
-# AddressFamily any
-# ConnectTimeout 0
-# StrictHostKeyChecking ask
-# IdentityFile ~/.ssh/identity
-# IdentityFile ~/.ssh/id_rsa
-# IdentityFile ~/.ssh/id_dsa
-# IdentityFile ~/.ssh/id_ecdsa
-# IdentityFile ~/.ssh/id_ed25519
-# Port 22
-# Protocol 2
-# Cipher 3des
-# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
-# MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
-# EscapeChar ~
-# Tunnel no
-# TunnelDevice any:any
-# PermitLocalCommand no
-# VisualHostKey no
-# ProxyCommand ssh -q -W %h:%p gateway.example.com
-# RekeyLimit 1G 1h
-
-{{ if getenv "SSH_DISABLE_STRICT_KEY_CHECKING" }}
-Host *
- StrictHostKeyChecking no
-{{ end }}
\ No newline at end of file
diff --git a/7.0/templates/sshd_config.tpl b/7.0/templates/sshd_config.tpl
deleted file mode 100644
index ed4b4a99..00000000
--- a/7.0/templates/sshd_config.tpl
+++ /dev/null
@@ -1,121 +0,0 @@
-# $OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $
-
-# This is the sshd server system-wide configuration file. See
-# sshd_config(5) for more information.
-
-# This sshd was compiled with PATH=/bin:/usr/bin:/sbin:/usr/sbin
-
-# The strategy used for options in the default sshd_config shipped with
-# OpenSSH is to specify options with their default value where
-# possible, but leave them commented. Uncommented options override the
-# default value.
-
-#Port 22
-#AddressFamily any
-#ListenAddress 0.0.0.0
-#ListenAddress ::
-
-{{ $keys_dir := (getenv "SSHD_HOST_KEYS_DIR" "/etc/ssh") }}
-HostKey {{ $keys_dir }}/ssh_host_rsa_key
-HostKey {{ $keys_dir }}/ssh_host_dsa_key
-HostKey {{ $keys_dir }}/ssh_host_ecdsa_key
-HostKey {{ $keys_dir }}/ssh_host_ed25519_key
-
-# Ciphers and keying
-#RekeyLimit default none
-
-# Logging
-#SyslogFacility AUTH
-LogLevel {{ getenv "SSHD_LOG_LEVEL" "INFO" }}
-
-# Authentication:
-
-#LoginGraceTime 2m
-#PermitRootLogin prohibit-password
-#StrictModes yes
-#MaxAuthTries 6
-#MaxSessions 10
-
-PubkeyAuthentication yes
-
-# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
-# but this is overridden so installations will only check .ssh/authorized_keys
-AuthorizedKeysFile .ssh/authorized_keys
-
-#AuthorizedPrincipalsFile none
-
-#AuthorizedKeysCommand none
-#AuthorizedKeysCommandUser nobody
-
-# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
-#HostbasedAuthentication no
-# Change to yes if you don't trust ~/.ssh/known_hosts for
-# HostbasedAuthentication
-#IgnoreUserKnownHosts no
-# Don't read the user's ~/.rhosts and ~/.shosts files
-#IgnoreRhosts yes
-
-# To disable tunneled clear text passwords, change to no here!
-PasswordAuthentication {{ getenv "SSHD_PASSWORD_AUTHENTICATION" "no" }}
-#PermitEmptyPasswords no
-
-# Change to no to disable s/key passwords
-#ChallengeResponseAuthentication yes
-
-# Kerberos options
-#KerberosAuthentication no
-#KerberosOrLocalPasswd yes
-#KerberosTicketCleanup yes
-#KerberosGetAFSToken no
-
-# GSSAPI options
-#GSSAPIAuthentication no
-#GSSAPICleanupCredentials yes
-
-# UsePAM NOT SUPPORTED
-
-#AllowAgentForwarding yes
-#AllowTcpForwarding yes
-GatewayPorts {{ getenv "SSHD_GATEWAY_PORTS" "no" }}
-#X11Forwarding no
-#X11DisplayOffset 10
-#X11UseLocalhost yes
-#PermitTTY yes
-#PrintMotd yes
-#PrintLastLog yes
-#TCPKeepAlive yes
-#UseLogin no
-PermitUserEnvironment {{ getenv "SSHD_PERMIT_USER_ENV" "no" }}
-#Compression delayed
-#ClientAliveInterval 0
-#ClientAliveCountMax 3
-UseDNS {{ getenv "SSHD_USE_DNS" "yes" }}
-#PidFile /run/sshd.pid
-#MaxStartups 10:30:100
-#PermitTunnel no
-#ChrootDirectory none
-#VersionAddendum none
-
-# no default banner path
-#Banner none
-
-# override default of no subsystems
-Subsystem sftp /usr/lib/ssh/sftp-server
-
-# the following are HPN related configuration options
-# tcp receive buffer polling. disable in non autotuning kernels
-#TcpRcvBufPoll yes
-
-# disable hpn performance boosts
-#HPNDisabled no
-
-# buffer size for hpn to non-hpn connections
-#HPNBufferSize 2048
-
-
-# Example of overriding settings on a per-user basis
-#Match User anoncvs
-# X11Forwarding no
-# AllowTcpForwarding no
-# PermitTTY no
-# ForceCommand cvs server
diff --git a/7.0/templates/zz-www.conf.tpl b/7.0/templates/zz-www.conf.tpl
deleted file mode 100644
index a35888b8..00000000
--- a/7.0/templates/zz-www.conf.tpl
+++ /dev/null
@@ -1,47 +0,0 @@
-[global]
-log_level = {{ getenv "PHP_FPM_LOG_LEVEL" "notice" }}
-
-[www]
-clear_env = {{ getenv "PHP_FPM_CLEAR_ENV" "yes" }}
-pm = {{ getenv "PHP_FPM_PM" "dynamic" }}
-pm.max_children = {{ getenv "PHP_FPM_PM_MAX_CHILDREN" "8" }}
-pm.start_servers = {{ getenv "PHP_FPM_PM_START_SERVERS" "2" }}
-pm.min_spare_servers = {{ getenv "PHP_FPM_PM_MIN_SPARE_SERVERS" "1" }}
-pm.max_spare_servers = {{ getenv "PHP_FPM_PM_MAX_SPARE_SERVERS" "3" }}
-pm.max_requests = {{ getenv "PHP_FPM_PM_MAX_REQUESTS" "500" }}
-{{ if getenv "PHP_FPM_PM_STATUS_PATH" }}
-pm.status_path = {{ getenv "PHP_FPM_PM_STATUS_PATH" }}
-{{ end }}
-{{ if getenv "PHP_FPM_REQUEST_SLOWLOG_TIMEOUT" }}
-slowlog = /proc/self/fd/2
-request_slowlog_timeout = {{ getenv "PHP_FPM_REQUEST_SLOWLOG_TIMEOUT" }}
-{{ end }}
-
-php_value[display_errors] = {{ getenv "PHP_DISPLAY_ERRORS" "On" }}
-php_value[display_startup_errors] = {{ getenv "PHP_DISPLAY_STARTUP_ERRORS" "On" }}
-php_value[expose_php] = {{ getenv "PHP_EXPOSE" "Off" }}
-php_value[max_execution_time] = {{ getenv "PHP_MAX_EXECUTION_TIME" "120" }}
-php_value[max_input_time] = {{ getenv "PHP_MAX_INPUT_TIME" "60" }}
-php_value[max_input_vars] = {{ getenv "PHP_MAX_INPUT_VARS" "2000" }}
-php_value[memory_limit] = {{ getenv "PHP_MEMORY_LIMIT" "512M" }}
-php_value[post_max_size] = {{ getenv "PHP_POST_MAX_SIZE" "32M" }}
-php_value[upload_max_filesize] = {{ getenv "PHP_UPLOAD_MAX_FILESIZE" "32M" }}
-php_value[max_file_uploads] = {{ getenv "PHP_MAX_FILE_UPLOADS" "20" }}
-php_value[output_buffering] = {{ getenv "PHP_OUTPUT_BUFFERING" "4096" }}
-php_value[session.auto_start] = {{ getenv "PHP_SESSION_AUTO_START" "0" }}
-
-{{ if (getenv "PHP_FPM_USER") }}user = {{ getenv "PHP_FPM_USER" }}{{ end }}
-{{ if (getenv "PHP_FPM_GROUP") }}group = {{ getenv "PHP_FPM_GROUP" }}{{ end }}
-
-{{ if getenv "PHP_FPM_ENV_VARS" }}{{ range jsonArray (getenv "PHP_FPM_ENV_VARS") }}{{ if getenv . }}
-env[{{.}}] = {{ getenv . }}{{ end }}{{ end }}{{ end }}
-
-; Pool for health-check pings to avoid spam in access log.
-[ping]
-pm = static
-pm.max_children = 1
-listen = [::]:9001
-ping.path = "/ping"
-
-{{ if (getenv "PHP_FPM_USER") }}user = {{ getenv "PHP_FPM_USER" }}{{ end }}
-{{ if (getenv "PHP_FPM_GROUP") }}group = {{ getenv "PHP_FPM_GROUP" }}{{ end }}
diff --git a/7.0/test/docker-compose.yml b/7.0/test/docker-compose.yml
deleted file mode 100644
index 0792fc08..00000000
--- a/7.0/test/docker-compose.yml
+++ /dev/null
@@ -1,93 +0,0 @@
-version: "2"
-
-services:
- nginx:
- image: wodby/nginx:1.13
- environment:
- NGINX_BACKEND_HOST: php
- volumes:
- - ./nginx.conf:/etc/gotpl/default-vhost.conf.tpl
- depends_on:
- - php
-
- sshd:
- image: $IMAGE
- command: sudo /usr/sbin/sshd -De
- environment:
- SSH_PUBLIC_KEYS: |-
- ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC4mQ9wfvufRcDQ4LsoCYEyDL4LNsvP8dWKWMQKrnJ8k09IQm7mnvyzid8zxNJpQYxX12foC0+BttjejWVj67vf1if7rDHb\/e0oX7yQp4ji3QTjDNPDaOR\/eTOCNv1C5Lfj3n7D1G7O2dOiw8lAoSalGy6nltuTYY9EXbkl1dXaCG7qbQRVJEJdZ6x2oJ8FubJO6wjZvj9P759ziLVmWAqtzUgIQVlbv0nqSoq16Ug381sfnRvsHO1fXGhdgHGQ0WP720p5cBHxG+62HJROah5b7gahXidC2Lo6kdnLb5FOzZjRJO1aDiKgry\/GoNNijs6D5xwLtn44HoHMe0eyUw7lQCrWZwvNmdfvIecr+ZJNwT8cbZ2Cf5y0SqD4JZpcolR5FKuQluaVMdOvJCa8A\/BzvRqIeNLmZuHFRvruu2VTIHHZFR2CFgH9F+G\/KyBnmQwV\/FgqN6sy1MAuFmyizL7sJHVL3tSaMPSs423A+SLWYkXLxpUPjo2J5W2ImZYq97AQaHcArvrhKS2MwbBFGwaxglcq5t8Ss6Df3fEZUWGLHJSdOv\/fn\/+CNOiI7hjj3v5mHaxxnC27MOHmJlrqmCA3OXuQ9mZG\/hSfj2vPKF+xFUarqqsp4zVsDH71bY2Q+zHpyncIFnyhaiEba9gbvmUVOfUyYglkJ6TGF5xAhpDFpQ== admin@wodby.com"]
-
- php:
- image: $IMAGE
- environment:
- SSH_DISABLE_STRICT_KEY_CHECKING: 1
- PHP_XDEBUG: 1
- PHP_BLACKFIRE: 1
- SSH_PRIVATE_KEY: |-
- -----BEGIN RSA PRIVATE KEY-----
- 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
- -----END RSA PRIVATE KEY-----
- volumes:
- - ./tests.sh:/usr/local/bin/tests.sh
- - ./php_modules:/home/www-data/php_modules
- depends_on:
- - sshd
-
- crond:
- image: $IMAGE
- command: sudo -E crond -f -d 0
- environment:
- CRONTAB_ENV: test
- CRONTAB: |-
- # min hour day month weekday command
- */1 * * * * echo "$${CRONTAB_ENV}" > /home/www-data/cron
- depends_on:
- - sshd
diff --git a/7.0/test/nginx.conf b/7.0/test/nginx.conf
deleted file mode 100644
index a89ce5ba..00000000
--- a/7.0/test/nginx.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-server {
- server_name default;
- listen 80;
-
- root /var/www/html/;
- index index.php;
-
- fastcgi_param REQUEST_METHOD $request_method;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- fastcgi_index index.php;
-
- location / {
- fastcgi_pass php:9000;
- }
-}
diff --git a/7.0/test/tests.sh b/7.0/test/tests.sh
deleted file mode 100755
index 282e8d21..00000000
--- a/7.0/test/tests.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-php -m > ~/php_modules.tmp
-echo -n "Checking PHP modules... "
-
-# Modify copy, keep the mounted version untouched.
-cp ~/php_modules ~/expected_modules
-
-if [[ "${PHP_DEBUG}" == 1 ]]; then
- sed -i '/blackfire/d' ~/expected_modules
-fi
-
-if ! cmp -s ~/php_modules.tmp ~/expected_modules; then
- echo "Error. PHP modules are not identical."
- diff ~/php_modules.tmp ~/expected_modules
- exit 1
-fi
-
-echo "OK"
-
-echo -n "Checking composer... "
-composer --version | grep -q 'Composer version'
-echo "OK"
-
-echo -n "Checking walter... "
-walter -v | grep -q 'Walter version'
-echo "OK"
-
-echo -n "Checking PHPUnit... "
-phpunit -version | grep -q 'PHPUnit'
-echo "OK"
diff --git a/7.1/Dockerfile b/7.1/Dockerfile
deleted file mode 100644
index fc484c76..00000000
--- a/7.1/Dockerfile
+++ /dev/null
@@ -1,269 +0,0 @@
-ARG FROM_TAG
-
-FROM wodby/base-php:${FROM_TAG}
-
-ARG PHP_DEBUG
-
-ENV PHP_DEBUG="${PHP_DEBUG:-0}" \
- SSHD_PERMIT_USER_ENV="yes" \
- PHP_PRESTISSIMO_VER="0.3" \
- PHP_UNIT_VER="6.4" \
- WALTER_VER="1.3.0" \
-
- EXT_AMQP_VER="1.9.1" \
- EXT_APCU_VER="5.1.8" \
- EXT_AST_VER="0.1.6" \
- EXT_GEOIP_VER="1.1.1" \
- EXT_IMAGICK_VER="3.4.3" \
- EXT_MEMCACHED_VER="3.0.3" \
- EXT_MONGODB_VER="1.3.2" \
- EXT_OAUTH_VER="2.0.2" \
- EXT_REDIS_VER="3.1.4" \
- EXT_XDEBUG_VER="2.5.5" \
- EXT_YAML_VER="2.0.2" \
-
- C_CLIENT_VER="2007f-r6" \
- FREETYPE_VER="2.7.1-r1" \
- GEOIP_VER="1.6.10-r0" \
- ICU_LIBS_VER="58.2-r2" \
- IMAGEMAGICK_VER="7.0.5.10-r0" \
- LIBBZ2_VER="1.0.6-r5" \
- LIBJPEG_TURBO_VER="1.5.1-r0" \
- LIBLDAP_VER="2.4.44-r5" \
- LIBLTDL_VER="2.4.6-r1" \
- LIBMEMCACHED_LIBS_VER="1.0.18-r1" \
- LIBMCRYPT_VER="2.5.8-r7" \
- LIBPNG_VER="1.6.29-r1" \
- LIBXSLT_VER="1.1.29-r3" \
- MARIADB_CLIENT_VER="10.1.26-r0" \
- POSTGRESQL_CLIENT_VER="9.6.5-r0" \
- RABBITMQ_C_VER="0.8.0-r2" \
- YAML_VER="0.1.7-r0"
-
-ENV EXT_AST_URL="https://github.com/nikic/php-ast/archive/v${EXT_AST_VER}.tar.gz" \
- EXT_UPLOADPROGRESS_URL="https://github.com/wodby/pecl-php-uploadprogress/archive/latest.tar.gz" \
- WALTER_URL="https://github.com/walter-cd/walter/releases/download/v${WALTER_VER}/walter_${WALTER_VER}_linux_amd64.tar.gz" \
- BLACKFIRE_URL="https://blackfire.io/api/v1/releases/probe/php/alpine/amd64" \
-
- APP_ROOT="/var/www/html" \
- PATH="/home/www-data/.composer/vendor/bin:${PATH}"
-
-RUN set -xe && \
-
- # Recreate user with correct params
- deluser www-data && \
- addgroup -g 82 -S www-data && \
- adduser -u 82 -D -S -s /bin/bash -G www-data www-data && \
- sed -i '/^www-data/s/!/*/' /etc/shadow && \
- echo "PS1='\w\$ '" >> /home/www-data/.bashrc && \
-
- apk add --update --no-cache --virtual .php-rundeps \
- c-client=${C_CLIENT_VER} \
- fcgi \
- freetype=${FREETYPE_VER} \
- geoip=${GEOIP_VER} \
- git \
- icu-libs=${ICU_LIBS_VER} \
- imagemagick=${IMAGEMAGICK_VER} \
- less \
- libbz2=${LIBBZ2_VER} \
- libjpeg-turbo=${LIBJPEG_TURBO_VER} \
- libldap=${LIBLDAP_VER} \
- libltdl=${LIBLTDL_VER} \
- libmemcached-libs=${LIBMEMCACHED_LIBS_VER} \
- libmcrypt=${LIBMCRYPT_VER} \
- libpng=${LIBPNG_VER} \
- libxslt=${LIBXSLT_VER} \
- make \
- mariadb-client=${MARIADB_CLIENT_VER} \
- nano \
- openssh \
- openssh-client \
- patch \
- postgresql-client=${POSTGRESQL_CLIENT_VER} \
- rabbitmq-c=${RABBITMQ_C_VER} \
- rsync \
- su-exec \
- sudo \
- tig \
- tmux \
- yaml=${YAML_VER} && \
-
- apk add --update --no-cache --virtual .build-deps \
- autoconf \
- cmake \
- build-base \
- bzip2-dev \
- freetype-dev \
- geoip-dev \
- icu-dev \
- imagemagick-dev \
- imap-dev \
- jpeg-dev \
- libjpeg-turbo-dev \
- libmemcached-dev \
- libmcrypt-dev \
- libpng-dev \
- libtool \
- libxslt-dev \
- openldap-dev \
- pcre-dev \
- postgresql-dev \
- rabbitmq-c-dev \
- yaml-dev && \
-
- if [[ $PHP_DEBUG == 1 ]]; then \
- apk add --update --no-cache --virtual .debug-tools gdb; \
- fi && \
-
- docker-php-source extract && \
-
- docker-php-ext-install \
- bcmath \
- bz2 \
- calendar \
- exif \
- imap \
- intl \
- ldap \
- mcrypt \
- mysqli \
- opcache \
- pcntl \
- pdo_mysql \
- pdo_pgsql \
- pgsql \
- phar \
- soap \
- sockets \
- xmlrpc \
- xsl \
- zip && \
-
- # GD
- docker-php-ext-configure gd \
- --with-gd \
- --with-freetype-dir=/usr/include/ \
- --with-png-dir=/usr/include/ \
- --with-jpeg-dir=/usr/include/ && \
- NPROC=$(getconf _NPROCESSORS_ONLN) && \
- docker-php-ext-install -j${NPROC} gd && \
-
- # PECL extensions
- pecl config-set php_ini "${PHP_INI_DIR}/php.ini" && \
-
- pecl install \
- amqp-${EXT_AMQP_VER} \
- apcu-${EXT_APCU_VER} \
- geoip-${EXT_GEOIP_VER} \
- imagick-${EXT_IMAGICK_VER} \
- memcached-${EXT_MEMCACHED_VER} \
- mongodb-${EXT_MONGODB_VER} \
- oauth-${EXT_OAUTH_VER} \
- redis-${EXT_REDIS_VER} \
- xdebug-${EXT_XDEBUG_VER} \
- yaml-${EXT_YAML_VER} && \
-
- docker-php-ext-enable \
- amqp \
- apcu \
- imagick \
- geoip \
- memcached \
- mongodb \
- oauth \
- redis \
- xdebug \
- yaml && \
-
- # Blackfire extension
- mkdir -p /tmp/blackfire && \
- version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") && \
- wget -qO- "${BLACKFIRE_URL}/${version}" | tar xz --no-same-owner -C /tmp/blackfire && \
- mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so && \
-
- # Uploadprogress
- mkdir -p /usr/src/php/ext/uploadprogress && \
- wget -qO- ${EXT_UPLOADPROGRESS_URL} | tar xz --strip-components=1 -C /usr/src/php/ext/uploadprogress && \
- docker-php-ext-configure uploadprogress && \
- docker-php-ext-install uploadprogress && \
-
- # AST
- mkdir -p /usr/src/php/ext/ast && \
- wget -qO- ${EXT_AST_URL} | tar xz --strip-components=1 -C /usr/src/php/ext/ast && \
- docker-php-ext-configure ast && \
- docker-php-ext-install ast && \
-
- # Install composer
- wget -qO- https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && \
-
- # Plugin for parallel install
- su-exec www-data composer global require hirak/prestissimo:^${PHP_PRESTISSIMO_VER} && \
-
- # Install PHPUnit
- wget -qO- https://phar.phpunit.de/phpunit-${PHP_UNIT_VER}.phar > /usr/local/bin/phpunit && \
- chmod +x /usr/local/bin/phpunit && \
-
- # Install Walter
- wget -qO- ${WALTER_URL} | tar xz -C /tmp/ && \
- mv /tmp/walter_linux_amd64/walter /usr/local/bin && \
-
- # Add composer bins to $PATH
- su-exec www-data echo "export PATH=/home/www-data/.composer/vendor/bin:${PATH}" > /home/www-data/.profile && \
-
- # Configure sudoers
- { \
- echo -n 'www-data ALL=(root) NOPASSWD:SETENV: ' ; \
- echo -n '/usr/local/bin/sshd-generate-keys.sh, ' ; \
- echo -n '/usr/local/bin/fix-permissions.sh, ' ; \
- echo -n '/usr/sbin/sshd, ' ; \
- echo '/usr/sbin/crond' ; \
- } | tee /etc/sudoers.d/www-data && \
-
- # Configure ldap
- echo "TLS_CACERTDIR /etc/ssl/certs/" >> /etc/openldap/ldap.conf && \
-
- # We run php-fpm as non root
- sed -i '/^user = www-data/d;/^group = www-data/d' /usr/local/etc/php-fpm.d/www.conf* && \
-
- # Create required directories and fix permissions
- mkdir -p ${APP_ROOT} && \
- su-exec www-data mkdir /home/www-data/.ssh && \
-
- touch /etc/ssh/sshd_config && \
- chown www-data: /etc/ssh/sshd_config && \
-
- rm /etc/crontabs/root && \
- touch /etc/crontabs/www-data && \
- chown root:www-data /etc/crontabs/www-data && \
- chmod 660 /etc/crontabs/www-data && \
-
- chown -R www-data:www-data /var/www "${PHP_INI_DIR}/conf.d" /usr/local/etc/php-fpm.d/ /home/www-data/.profile && \
-
- # Cleanup
- su-exec www-data composer clear-cache && \
- docker-php-source delete && \
- apk del .build-deps && \
- pecl clear-cache && \
-
- rm -rf \
- /usr/src/php.tar.xz \
- /usr/src/php/ext/ast \
- /usr/src/php/ext/uploadprogress \
- /usr/include/php \
- /usr/lib/php/build \
- /tmp/* \
- /root/.composer
-
-USER www-data
-
-WORKDIR ${APP_ROOT}
-EXPOSE 9000
-
-COPY templates /etc/gotpl/
-COPY docker-entrypoint.sh /
-COPY actions /usr/local/bin/
-COPY php.ini ${PHP_INI_DIR}
-
-ENTRYPOINT ["/docker-entrypoint.sh"]
-CMD ["php-fpm"]
diff --git a/7.1/Makefile b/7.1/Makefile
deleted file mode 100644
index c6fb7300..00000000
--- a/7.1/Makefile
+++ /dev/null
@@ -1,49 +0,0 @@
--include env_make
-
-PHP_VER ?= 7.1
-TAG ?= $(PHP_VER)
-
-REPO = wodby/php
-NAME = php-$(PHP_VER)
-FROM_TAG = 7.1.11
-
-PHP_DEBUG ?= 0
-
-ifneq ($(PHP_DEBUG), 0)
- override TAG := $(TAG)-debug
- FROM_TAG := $(FROM_TAG)-debug
- NAME := $(NAME)-debug
-endif
-
-.PHONY: build test push shell run start stop logs clean release
-
-default: build
-
-build:
- docker build -t $(REPO):$(TAG) --build-arg FROM_TAG=$(FROM_TAG) --build-arg PHP_DEBUG=$(PHP_DEBUG) ./
-
-test:
- IMAGE=$(REPO):$(TAG) ./test.sh
-
-push:
- docker push $(REPO):$(TAG)
-
-shell:
- docker run --rm --name $(NAME) -i -t $(PORTS) $(VOLUMES) $(ENV) $(REPO):$(TAG) /bin/bash
-
-run:
- docker run --rm --name $(NAME) $(PORTS) $(VOLUMES) $(ENV) $(REPO):$(TAG) $(CMD)
-
-start:
- docker run -d --name $(NAME) $(PORTS) $(VOLUMES) $(ENV) $(REPO):$(TAG)
-
-stop:
- docker stop $(NAME)
-
-logs:
- docker logs $(NAME)
-
-clean:
- -docker rm -f $(NAME)
-
-release: build push
diff --git a/7.1/actions/actions.mk b/7.1/actions/actions.mk
deleted file mode 100644
index 73a9c9f6..00000000
--- a/7.1/actions/actions.mk
+++ /dev/null
@@ -1,37 +0,0 @@
-.PHONY: git-clone git-checkout walter check-ready check-live
-
-check_defined = \
- $(strip $(foreach 1,$1, \
- $(call __check_defined,$1,$(strip $(value 2)))))
-__check_defined = \
- $(if $(value $1),, \
- $(error Required parameter is missing: $1$(if $2, ($2))))
-
-host ?= localhost
-max_try ?= 1
-wait_seconds ?= 1
-delay_seconds ?= 0
-is_hash ?= 0
-branch = ""
-# Some symbols in env vars break cgi-fcgi
-command ?= env -i SCRIPT_NAME="/ping" SCRIPT_FILENAME="/ping" REQUEST_METHOD=GET cgi-fcgi -bind -connect "${host}":9001 | grep -q "pong"
-service = PHP-FPM
-
-default: check-ready
-
-git-clone:
- $(call check_defined, url)
- git-clone.sh $(url) $(branch)
-
-git-checkout:
- $(call check_defined, target)
- git-checkout.sh $(target) $(is_hash)
-
-walter:
- walter.sh
-
-check-ready:
- wait-for.sh "$(command)" $(service) $(host) $(max_try) $(wait_seconds) $(delay_seconds)
-
-check-live:
- @echo "OK"
diff --git a/7.1/actions/git-checkout.sh b/7.1/actions/git-checkout.sh
deleted file mode 100755
index a3f6865e..00000000
--- a/7.1/actions/git-checkout.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-target=$1
-is_hash=$2
-
-cd "${APP_ROOT}"
-git stash
-git fetch --all
-git checkout "${target}"
-
-if [[ "${is_hash}" -eq '0' ]]; then
- git pull origin "${target}"
-fi
diff --git a/7.1/actions/git-clone.sh b/7.1/actions/git-clone.sh
deleted file mode 100755
index 63cbf83d..00000000
--- a/7.1/actions/git-clone.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-url=$1
-branch=$2
-
-if [[ -n "${branch}" ]]; then
- git clone -b "${branch}" "${url}" "${APP_ROOT}"
-else
- git clone "${url}" "${APP_ROOT}"
-fi
diff --git a/7.1/actions/sshd-generate-keys.sh b/7.1/actions/sshd-generate-keys.sh
deleted file mode 100755
index 5c0e79d4..00000000
--- a/7.1/actions/sshd-generate-keys.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-dir="${1:-/etc/ssh}"
-
-mkdir -p "${dir}"
-ssh-keygen -qb 2048 -t rsa -N "" -f "${dir}/ssh_host_rsa_key"
-chmod 0600 "${dir}/ssh_host_rsa_key"
-chmod 0644 "${dir}/ssh_host_rsa_key.pub"
diff --git a/7.1/actions/walter.sh b/7.1/actions/walter.sh
deleted file mode 100755
index e928d759..00000000
--- a/7.1/actions/walter.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-if [[ -f "${APP_ROOT}/wodby.yml" ]]; then
- walter -c "${APP_ROOT}/wodby.yml"
-fi
\ No newline at end of file
diff --git a/7.1/docker-entrypoint.sh b/7.1/docker-entrypoint.sh
deleted file mode 100755
index 3f5707f4..00000000
--- a/7.1/docker-entrypoint.sh
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-SSH_DIR=/home/www-data/.ssh
-
-_backwards_compatibility() {
- declare -A vars
- vars[PHP_APCU_ENABLE]="PHP_APCU_ENABLED"
- vars[PHP_FPM_SLOWLOG_TIMEOUT]="PHP_FPM_REQUEST_SLOWLOG_TIMEOUT"
- vars[PHP_FPM_MAX_CHILDREN]="PHP_FPM_PM_MAX_CHILDREN"
- vars[PHP_FPM_START_SERVERS]="PHP_FPM_PM_START_SERVERS"
- vars[PHP_FPM_MIN_SPARE_SERVERS]="PHP_FPM_PM_MIN_SPARE_SERVERS"
- vars[PHP_FPM_MAX_SPARE_SERVERS]="PHP_FPM_PM_MAX_SPARE_SERVERS"
- vars[PHP_FPM_MAX_REQUESTS]="PHP_FPM_PM_MAX_REQUESTS"
- vars[PHP_FPM_STATUS_PATH]="PHP_FPM_PM_STATUS_PATH"
-
- for i in "${!vars[@]}"; do
- export "$i"="${!vars[$i]}"
- done
-}
-
-exec_tpl() {
- if [[ -f "/etc/gotpl/$1" ]]; then
- gotpl "/etc/gotpl/$1" > "$2"
- fi
-}
-
-validate_dirs() {
- if [[ -n "${PHP_XDEBUG_TRACE_OUTPUT_DIR}" ]]; then
- mkdir -p "${PHP_XDEBUG_TRACE_OUTPUT_DIR}"
- fi
-
- if [[ -n "${PHP_XDEBUG_PROFILER_OUTPUT_DIR}" ]]; then
- mkdir -p "${PHP_XDEBUG_PROFILER_OUTPUT_DIR}"
- fi
-}
-
-init_ssh_client() {
- exec_tpl "ssh_config.tpl" "${SSH_DIR}/config"
-
- if [[ -n "${SSH_PRIVATE_KEY}" ]]; then
- exec_tpl "id_rsa.tpl" "${SSH_DIR}/id_rsa"
- chmod -f 600 "${SSH_DIR}/id_rsa"
- unset SSH_PRIVATE_KEY
- fi
-}
-
-init_sshd() {
- exec_tpl "sshd_config.tpl" "/etc/ssh/sshd_config"
-
- if [[ -n "${SSH_PUBLIC_KEYS}" ]]; then
- exec_tpl "authorized_keys.tpl" "${SSH_DIR}/authorized_keys"
- unset SSH_PUBLIC_KEYS
- fi
-
- printenv | xargs -I{} echo {} | awk ' \
- BEGIN { FS = "=" }; { \
- if ($1 != "HOME" \
- && $1 != "PWD" \
- && $1 != "PATH" \
- && $1 != "SHLVL") { \
- \
- print ""$1"="$2"" \
- } \
- }' > "${SSH_DIR}/environment"
-
- sudo sshd-generate-keys.sh "${SSHD_HOST_KEYS_DIR}"
-}
-
-init_crond() {
- exec_tpl "crontab.tpl" "/etc/crontabs/www-data"
-}
-
-process_templates() {
- _backwards_compatibility
-
- exec_tpl "docker-php.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php.ini"
- exec_tpl "docker-php-ext-apcu.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"
- exec_tpl "docker-php-ext-geoip.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-geoip.ini"
- exec_tpl "docker-php-ext-opcache.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-opcache.ini"
- exec_tpl "docker-php-ext-xdebug.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-xdebug.ini"
- exec_tpl "zz-www.conf.tpl" "/usr/local/etc/php-fpm.d/zz-www.conf"
-
- if [[ "${PHP_DEBUG}" == 0 ]]; then
- exec_tpl "docker-php-ext-blackfire.ini.tpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-blackfire.ini"
- fi
-
- sed -i '/^$/d' "${PHP_INI_DIR}/conf.d/docker-php-ext-xdebug.ini"
-}
-
-init_git() {
- git config --global user.email "${GIT_USER_EMAIL:-www-data@example.com}"
- git config --global user.name "${GIT_USER_NAME:-www-data}"
-}
-
-sudo fix-permissions.sh www-data www-data "${APP_ROOT}"
-validate_dirs
-init_ssh_client
-init_git
-process_templates
-
-if [[ "${@:1:2}" == "sudo /usr/sbin/sshd" ]]; then
- init_sshd
-elif [[ "${@:1:3}" == "sudo -E crond" ]]; then
- init_crond
-fi
-
-exec-init-scripts.sh
-
-if [[ $1 == "make" ]]; then
- exec "${@}" -f /usr/local/bin/actions.mk
-else
- exec /usr/local/bin/docker-php-entrypoint "${@}"
-fi
diff --git a/7.1/docker-php-source b/7.1/docker-php-source
deleted file mode 100644
index 720d4ad1..00000000
--- a/7.1/docker-php-source
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-set -e
-
-dir=/usr/src/php
-
-usage() {
- echo "usage: $0 COMMAND"
- echo
- echo "Manage php source tarball lifecycle."
- echo
- echo "Commands:"
- echo " extract extract php source tarball into directory $dir if not already done."
- echo " delete delete extracted php source located into $dir if not already done."
- echo
-}
-
-case "$1" in
- extract)
- mkdir -p "$dir"
- if [ ! -f "$dir/.docker-extracted" ]; then
- tar -Jxf /usr/src/php.tar.xz -C "$dir" --strip-components=1
- touch "$dir/.docker-extracted"
- fi
- ;;
-
- delete)
- rm -rf "$dir"
- ;;
-
- *)
- usage
- exit 1
- ;;
-esac
\ No newline at end of file
diff --git a/7.1/templates/authorized_keys.tpl b/7.1/templates/authorized_keys.tpl
deleted file mode 100644
index cd58124a..00000000
--- a/7.1/templates/authorized_keys.tpl
+++ /dev/null
@@ -1,2 +0,0 @@
-{{ range jsonArray (getenv "SSH_PUBLIC_KEYS") }}{{ . }}
-{{ end }}
\ No newline at end of file
diff --git a/7.1/templates/crontab.tpl b/7.1/templates/crontab.tpl
deleted file mode 100644
index 537bc190..00000000
--- a/7.1/templates/crontab.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{{ getenv "CRONTAB" }}
\ No newline at end of file
diff --git a/7.1/templates/docker-php-ext-apcu.ini.tpl b/7.1/templates/docker-php-ext-apcu.ini.tpl
deleted file mode 100644
index 4f9eeb0f..00000000
--- a/7.1/templates/docker-php-ext-apcu.ini.tpl
+++ /dev/null
@@ -1,13 +0,0 @@
-[apcu]
-extension=apcu.so
-apc.enabled = {{ getenv "PHP_APCU_ENABLED" "1" }}
-apc.shm_segments = {{ getenv "PHP_APCU_SHM_SEGMENTS" "1" }}
-apc.shm_size = {{ getenv "PHP_APCU_SHM_SIZE" "32M" }}
-apc.entries_hint = {{ getenv "PHP_APCU_ENTRIES_HINT" "4096" }}
-apc.ttl = {{ getenv "PHP_APCU_TTL" "0" }}
-apc.gc_ttl = {{ getenv "PHP_APCU_GC_TTL" "3600" }}
-apc.slam_defense = {{ getenv "PHP_APCU_SLAM_DEFENSE" "1" }}
-apc.enable_cli = {{ getenv "PHP_APCU_ENABLE_CLI" "0" }}
-apc.use_request_time = {{ getenv "PHP_APCU_USE_REQUEST_TIME" "1" }}
-apc.coredump_unmap = {{ getenv "PHP_APCU_COREDUMP_UNMAP" "0" }}
-apc.preload_path = {{ getenv "PHP_APCU_PRELOAD_PATH" "NULL" }}
diff --git a/7.1/templates/docker-php-ext-blackfire.ini.tpl b/7.1/templates/docker-php-ext-blackfire.ini.tpl
deleted file mode 100644
index e8387eaa..00000000
--- a/7.1/templates/docker-php-ext-blackfire.ini.tpl
+++ /dev/null
@@ -1,4 +0,0 @@
-{{ if getenv "PHP_BLACKFIRE" }}
-extension=blackfire.so
-blackfire.agent_socket=tcp://{{ getenv "PHP_BLACKFIRE_AGENT_HOST" "blackfire" }}:{{ getenv "PHP_BLACKFIRE_AGENT_PORT" "8707" }}
-{{ end }}
\ No newline at end of file
diff --git a/7.1/templates/docker-php-ext-geoip.ini.tpl b/7.1/templates/docker-php-ext-geoip.ini.tpl
deleted file mode 100644
index fdebfe33..00000000
--- a/7.1/templates/docker-php-ext-geoip.ini.tpl
+++ /dev/null
@@ -1,3 +0,0 @@
-[geoip]
-extension=geoip.so
-geoip.custom_directory = {{ getenv "PHP_GEOIP_CUSTOM_DIR" "" }}
\ No newline at end of file
diff --git a/7.1/templates/docker-php-ext-opcache.ini.tpl b/7.1/templates/docker-php-ext-opcache.ini.tpl
deleted file mode 100644
index 518b7d02..00000000
--- a/7.1/templates/docker-php-ext-opcache.ini.tpl
+++ /dev/null
@@ -1,10 +0,0 @@
-[opcache]
-zend_extension = opcache.so
-opcache.enable = {{ getenv "PHP_OPCACHE_ENABLE" "1" }}
-opcache.validate_timestamps = {{ getenv "PHP_OPCACHE_VALIDATE_TIMESTAMPS" "1" }}
-opcache.revalidate_freq = {{ getenv "PHP_OPCACHE_REVALIDATE_FREQ" "2" }}
-opcache.max_accelerated_files = {{ getenv "PHP_OPCACHE_MAX_ACCELERATED_FILES" "4000" }}
-opcache.memory_consumption = {{ getenv "PHP_OPCACHE_MEMORY_CONSUMPTION" "128" }}
-opcache.interned_strings_buffer = {{ getenv "PHP_OPCACHE_INTERNED_STRINGS_BUFFER" "8" }}
-opcache.fast_shutdown = {{ getenv "PHP_OPCACHE_FAST_SHUTDOWN" "1" }}
-opcache.enable_cli = {{ getenv "PHP_OPCACHE_ENABLE_CLI" "1" }}
\ No newline at end of file
diff --git a/7.1/templates/docker-php-ext-xdebug.ini.tpl b/7.1/templates/docker-php-ext-xdebug.ini.tpl
deleted file mode 100644
index 9e5e67b9..00000000
--- a/7.1/templates/docker-php-ext-xdebug.ini.tpl
+++ /dev/null
@@ -1,80 +0,0 @@
-{{ if getenv "PHP_XDEBUG" }}
-[xdebug]
-zend_extension = xdebug.so
-xdebug.auto_trace = {{ getenv "PHP_XDEBUG_AUTO_TRACE" "0" }}
-xdebug.cli_color = {{ getenv "PHP_XDEBUG_CLI_COLOR" "0" }}
-xdebug.collect_assignments = {{ getenv "PHP_XDEBUG_COLLECT_ASSIGNMENTS" "0" }}
-xdebug.collect_includes = {{ getenv "PHP_XDEBUG_COLLECT_INCLUDES" "1" }}
-xdebug.collect_params = {{ getenv "PHP_XDEBUG_COLLECT_PARAMS" "0" }}
-xdebug.collect_return = {{ getenv "PHP_XDEBUG_COLLECT_RETURN" "0" }}
-xdebug.collect_vars = {{ getenv "PHP_XDEBUG_COLLECT_VARS" "0" }}
-xdebug.coverage_enable = {{ getenv "PHP_XDEBUG_COVERAGE_ENABLE" "1" }}
-xdebug.default_enable = {{ getenv "PHP_XDEBUG_DEFAULT_ENABLE" "0" }}
-xdebug.dump_globals = {{ getenv "PHP_XDEBUG_DUMP_GLOBALS" "1" }}
-xdebug.dump_once = {{ getenv "PHP_XDEBUG_DUMP_ONCE" "1" }}
-xdebug.dump_undefined = {{ getenv "PHP_XDEBUG_DUMP_UNDEFINED" "0" }}
-xdebug.extended_info = {{ getenv "PHP_XDEBUG_EXTENDED_INFO" "1" }}
-xdebug.file_link_format = "{{ getenv "PHP_XDEBUG_FILE_LINK_FORMAT" "" }}"
-xdebug.force_display_errors = {{ getenv "PHP_XDEBUG_FORCE_DISPLAY_ERRORS" "0" }}
-xdebug.force_error_reporting = {{ getenv "PHP_XDEBUG_FORCE_ERROR_REPORTING" "0" }}
-xdebug.halt_level = {{ getenv "PHP_XDEBUG_HALT_LEVEL" "0" }}
-xdebug.manual_url = {{ getenv "PHP_XDEBUG_MANUAL_URL" "http://www.php.net" }}
-xdebug.max_nesting_level = {{ getenv "PHP_XDEBUG_MAX_NESTING_LEVEL" "256" }}
-xdebug.max_stack_frames = {{ getenv "PHP_XDEBUG_MAX_STACK_FRAMES" "-1" }}
-xdebug.overload_var_dump = {{ getenv "PHP_XDEBUG_OVERLOAD_VAR_DUMP" "2" }}
-xdebug.profiler_aggregate = {{ getenv "PHP_XDEBUG_PROFILER_AGGREGATE" "0" }}
-xdebug.profiler_append = {{ getenv "PHP_XDEBUG_PROFILER_APPEND" "0" }}
-xdebug.profiler_enable = {{ getenv "PHP_XDEBUG_PROFILER_ENABLE" "0" }}
-xdebug.profiler_enable_trigger = {{ getenv "PHP_XDEBUG_PROFILER_ENABLE_TRIGGER" "0" }}
-xdebug.profiler_enable_trigger_value = "{{ getenv "PHP_XDEBUG_PROFILER_ENABLE_TRIGGER_VALUE" "" }}"
-xdebug.profiler_output_dir = {{ getenv "PHP_XDEBUG_PROFILER_OUTPUT_DIR" "/tmp" }}
-xdebug.profiler_output_name = {{ getenv "PHP_XDEBUG_PROFILER_OUTPUT_NAME" "cachegrind.out.%p" }}
-xdebug.remote_addr_header = "{{ getenv "PHP_XDEBUG_REMOTE_ADDR_HEADER" "" }}"
-xdebug.remote_autostart = {{ getenv "PHP_XDEBUG_REMOTE_AUTOSTART" "1" }}
-xdebug.remote_connect_back = {{ getenv "PHP_XDEBUG_REMOTE_CONNECT_BACK" "1" }}
-xdebug.remote_cookie_expire_time = {{ getenv "PHP_XDEBUG_REMOTE_COOKIE_EXPIRE_TIME" "3600" }}
-xdebug.remote_enable = {{ getenv "PHP_XDEBUG_REMOTE_ENABLE" "1" }}
-xdebug.remote_handler = {{ getenv "PHP_XDEBUG_REMOTE_HANDLER" "dbgp" }}
-xdebug.remote_host = {{ getenv "PHP_XDEBUG_REMOTE_HOST" "localhost" }}
-xdebug.remote_log = "{{ getenv "PHP_XDEBUG_REMOTE_LOG" "" }}"
-xdebug.remote_mode = {{ getenv "PHP_XDEBUG_REMOTE_MODE" "req" }}
-xdebug.remote_port = {{ getenv "PHP_XDEBUG_REMOTE_PORT" "9000" }}
-xdebug.scream = {{ getenv "PHP_XDEBUG_SCREAM" "0" }}
-xdebug.show_error_trace = {{ getenv "PHP_XDEBUG_SHOW_ERROR_TRACE" "0" }}
-xdebug.show_exception_trace = {{ getenv "PHP_XDEBUG_SHOW_EXCEPTION_TRACE" "0" }}
-xdebug.show_local_vars = {{ getenv "PHP_XDEBUG_SHOW_LOCAL_VARS" "0" }}
-xdebug.show_mem_delta = {{ getenv "PHP_XDEBUG_SHOW_MEM_DELTA" "0" }}
-xdebug.trace_enable_trigger = {{ getenv "PHP_XDEBUG_TRACE_ENABLE_TRIGGER" "0" }}
-xdebug.trace_enable_trigger_value = "{{ getenv "PHP_XDEBUG_TRACE_ENABLE_TRIGGER_VALUE" "" }}"
-xdebug.trace_format = {{ getenv "PHP_XDEBUG_TRACE_FORMAT" "0" }}
-xdebug.trace_options = {{ getenv "PHP_XDEBUG_TRACE_OPTIONS" "0" }}
-xdebug.trace_output_dir = {{ getenv "PHP_XDEBUG_TRACE_OUTPUT_DIR" "/tmp" }}
-xdebug.trace_output_name = {{ getenv "PHP_XDEBUG_TRACE_OUTPUT_NAME" "trace.%c" }}
-xdebug.var_display_max_children = {{ getenv "PHP_XDEBUG_VAR_DISPLAY_MAX_CHILDREN" "128" }}
-xdebug.var_display_max_data = {{ getenv "PHP_XDEBUG_VAR_DISPLAY_MAX_DATA" "512" }}
-xdebug.var_display_max_depth = {{ getenv "PHP_XDEBUG_VAR_DISPLAY_MAX_DEPTH" "3" }}
-{{ if getenv "PHP_XDEBUG_DUMP_COOKIE" }}
-xdebug.dump.COOKIE = {{ getenv "PHP_XDEBUG_DUMP_COOKIE" }}
-{{ end }}
-{{ if getenv "PHP_XDEBUG_DUMP_FILES" }}
-xdebug.dump.FILES = {{ getenv "PHP_XDEBUG_DUMP_FILES" }}
-{{ end }}
-{{ if getenv "PHP_XDEBUG_DUMP_GET" }}
-xdebug.dump.GET = {{ getenv "PHP_XDEBUG_DUMP_GET" }}
-{{ end }}
-{{ if getenv "PHP_XDEBUG_DUMP_POST" }}
-xdebug.dump.POST = {{ getenv "PHP_XDEBUG_DUMP_POST" }}
-{{ end }}
-{{ if getenv "PHP_XDEBUG_DUMP_REQUEST" }}
-xdebug.dump.REQUEST = {{ getenv "PHP_XDEBUG_DUMP_REQUEST" }}
-{{ end }}
-{{ if getenv "PHP_XDEBUG_DUMP_SERVER" }}
-xdebug.dump.SERVER = {{ getenv "PHP_XDEBUG_DUMP_SERVER" }}
-{{ end }}
-{{ if getenv "PHP_XDEBUG_DUMP_SESSION" }}
-xdebug.dump.SESSION = {{ getenv "PHP_XDEBUG_DUMP_SESSION" }}
-{{ end }}
-{{ if getenv "PHP_XDEBUG_IDEKEY" }}
-xdebug.idekey = {{ getenv "PHP_XDEBUG_IDEKEY" }}
-{{ end }}
-{{ end }}
\ No newline at end of file
diff --git a/7.1/templates/docker-php.ini.tpl b/7.1/templates/docker-php.ini.tpl
deleted file mode 100644
index bb1e2000..00000000
--- a/7.1/templates/docker-php.ini.tpl
+++ /dev/null
@@ -1,28 +0,0 @@
-; This file user only to override default php.ini values
-; BASIC SETTINGS: $PHP_INI_DIR/php.ini
-; PHP-FPM SETTINGS: /usr/local/etc/php-fpm.d/zz-www.conf
-
-[PHP]
-realpath_cache_size = {{ getenv "PHP_REALPATH_CACHE_SIZE" "4096k" }}
-realpath_cache_ttl = {{ getenv "PHP_REALPATH_CACHE_TTL" "120" }}
-memory_limit = {{ getenv "PHP_CLI_MEMORY_LIMIT" "-1" }}
-error_reporting = {{ getenv "PHP_ERROR_REPORTING" "E_ALL" }}
-log_errors_max_len = {{ getenv "PHP_LOG_ERRORS_MAX_LEN" "1024" }}
-track_errors = {{ getenv "PHP_TRACK_ERRORS" "On" }}
-error_log = /proc/self/fd/2
-
-[Date]
-date.timezone = {{ getenv "PHP_DATE_TIMEZONE" "UTC"}}
-
-[Pdo_mysql]
-pdo_mysql.cache_size = {{ getenv "PHP_PDO_MYSQL_CACHE_SIZE" "2000" }}
-
-[mail function]
-sendmail_path = {{ getenv "PHP_SENDMAIL_PATH" "/bin/true" }}
-
-[MySQLi]
-mysqli.cache_size = {{ getenv "PHP_MYSQLI_CACHE_SIZE" "2000" }}
-
-[Assertion]
-zend.assertions = {{ getenv "PHP_ZEND_ASSERTIONS" "1" }}
-assert.active = {{ getenv "PHP_ASSERT_ACTIVE" "On" }}
\ No newline at end of file
diff --git a/7.1/templates/id_rsa.tpl b/7.1/templates/id_rsa.tpl
deleted file mode 100644
index 3fee5f15..00000000
--- a/7.1/templates/id_rsa.tpl
+++ /dev/null
@@ -1 +0,0 @@
-{{ getenv "SSH_PRIVATE_KEY" }}
\ No newline at end of file
diff --git a/7.1/templates/ssh_config.tpl b/7.1/templates/ssh_config.tpl
deleted file mode 100644
index 69bc5a2b..00000000
--- a/7.1/templates/ssh_config.tpl
+++ /dev/null
@@ -1,55 +0,0 @@
-# $OpenBSD: ssh_config,v 1.30 2016/02/20 23:06:23 sobrado Exp $
-
-# This is the ssh client system-wide configuration file. See
-# ssh_config(5) for more information. This file provides defaults for
-# users, and the values can be changed in per-user configuration files
-# or on the command line.
-
-# Configuration data is parsed as follows:
-# 1. command line options
-# 2. user-specific file
-# 3. system-wide file
-# Any configuration value is only changed the first time it is set.
-# Thus, host-specific definitions should be at the beginning of the
-# configuration file, and defaults at the end.
-
-# Site-wide defaults for some commonly used options. For a comprehensive
-# list of available options, their meanings and defaults, please see the
-# ssh_config(5) man page.
-
-# Host *
-# ForwardAgent no
-# ForwardX11 no
-# RhostsRSAAuthentication no
-# RSAAuthentication yes
-# PasswordAuthentication yes
-# HostbasedAuthentication no
-# GSSAPIAuthentication no
-# GSSAPIDelegateCredentials no
-# BatchMode no
-# CheckHostIP yes
-# AddressFamily any
-# ConnectTimeout 0
-# StrictHostKeyChecking ask
-# IdentityFile ~/.ssh/identity
-# IdentityFile ~/.ssh/id_rsa
-# IdentityFile ~/.ssh/id_dsa
-# IdentityFile ~/.ssh/id_ecdsa
-# IdentityFile ~/.ssh/id_ed25519
-# Port 22
-# Protocol 2
-# Cipher 3des
-# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
-# MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
-# EscapeChar ~
-# Tunnel no
-# TunnelDevice any:any
-# PermitLocalCommand no
-# VisualHostKey no
-# ProxyCommand ssh -q -W %h:%p gateway.example.com
-# RekeyLimit 1G 1h
-
-{{ if getenv "SSH_DISABLE_STRICT_KEY_CHECKING" }}
-Host *
- StrictHostKeyChecking no
-{{ end }}
\ No newline at end of file
diff --git a/7.1/templates/zz-www.conf.tpl b/7.1/templates/zz-www.conf.tpl
deleted file mode 100644
index a35888b8..00000000
--- a/7.1/templates/zz-www.conf.tpl
+++ /dev/null
@@ -1,47 +0,0 @@
-[global]
-log_level = {{ getenv "PHP_FPM_LOG_LEVEL" "notice" }}
-
-[www]
-clear_env = {{ getenv "PHP_FPM_CLEAR_ENV" "yes" }}
-pm = {{ getenv "PHP_FPM_PM" "dynamic" }}
-pm.max_children = {{ getenv "PHP_FPM_PM_MAX_CHILDREN" "8" }}
-pm.start_servers = {{ getenv "PHP_FPM_PM_START_SERVERS" "2" }}
-pm.min_spare_servers = {{ getenv "PHP_FPM_PM_MIN_SPARE_SERVERS" "1" }}
-pm.max_spare_servers = {{ getenv "PHP_FPM_PM_MAX_SPARE_SERVERS" "3" }}
-pm.max_requests = {{ getenv "PHP_FPM_PM_MAX_REQUESTS" "500" }}
-{{ if getenv "PHP_FPM_PM_STATUS_PATH" }}
-pm.status_path = {{ getenv "PHP_FPM_PM_STATUS_PATH" }}
-{{ end }}
-{{ if getenv "PHP_FPM_REQUEST_SLOWLOG_TIMEOUT" }}
-slowlog = /proc/self/fd/2
-request_slowlog_timeout = {{ getenv "PHP_FPM_REQUEST_SLOWLOG_TIMEOUT" }}
-{{ end }}
-
-php_value[display_errors] = {{ getenv "PHP_DISPLAY_ERRORS" "On" }}
-php_value[display_startup_errors] = {{ getenv "PHP_DISPLAY_STARTUP_ERRORS" "On" }}
-php_value[expose_php] = {{ getenv "PHP_EXPOSE" "Off" }}
-php_value[max_execution_time] = {{ getenv "PHP_MAX_EXECUTION_TIME" "120" }}
-php_value[max_input_time] = {{ getenv "PHP_MAX_INPUT_TIME" "60" }}
-php_value[max_input_vars] = {{ getenv "PHP_MAX_INPUT_VARS" "2000" }}
-php_value[memory_limit] = {{ getenv "PHP_MEMORY_LIMIT" "512M" }}
-php_value[post_max_size] = {{ getenv "PHP_POST_MAX_SIZE" "32M" }}
-php_value[upload_max_filesize] = {{ getenv "PHP_UPLOAD_MAX_FILESIZE" "32M" }}
-php_value[max_file_uploads] = {{ getenv "PHP_MAX_FILE_UPLOADS" "20" }}
-php_value[output_buffering] = {{ getenv "PHP_OUTPUT_BUFFERING" "4096" }}
-php_value[session.auto_start] = {{ getenv "PHP_SESSION_AUTO_START" "0" }}
-
-{{ if (getenv "PHP_FPM_USER") }}user = {{ getenv "PHP_FPM_USER" }}{{ end }}
-{{ if (getenv "PHP_FPM_GROUP") }}group = {{ getenv "PHP_FPM_GROUP" }}{{ end }}
-
-{{ if getenv "PHP_FPM_ENV_VARS" }}{{ range jsonArray (getenv "PHP_FPM_ENV_VARS") }}{{ if getenv . }}
-env[{{.}}] = {{ getenv . }}{{ end }}{{ end }}{{ end }}
-
-; Pool for health-check pings to avoid spam in access log.
-[ping]
-pm = static
-pm.max_children = 1
-listen = [::]:9001
-ping.path = "/ping"
-
-{{ if (getenv "PHP_FPM_USER") }}user = {{ getenv "PHP_FPM_USER" }}{{ end }}
-{{ if (getenv "PHP_FPM_GROUP") }}group = {{ getenv "PHP_FPM_GROUP" }}{{ end }}
diff --git a/7.1/test.sh b/7.1/test.sh
deleted file mode 100755
index 498556ac..00000000
--- a/7.1/test.sh
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/bin/bash
-
-set -e
-
-if [[ -n "${DEBUG}" ]]; then
- set -x
-fi
-
-git_url=git@bitbucket.org:wodby/php-git-test.git
-
-wait_for_cron() {
- executed=0
-
- for i in $(seq 1 13); do
- if docker_exec crond cat /home/www-data/cron | grep -q "test"; then
- executed=1
- break
- fi
- echo 'Waiting for cron execution...'
- sleep 5
- done
-
- if [[ "${executed}" -eq '0' ]]; then
- echo >&2 'Cron failed.'
- exit 1
- fi
-
- echo 'Cron has been executed!'
-}
-
-docker_exec() {
- docker-compose -f test/docker-compose.yml exec "${@}"
-}
-
-run_action() {
- docker_exec "${1}" make "${@:2}" -f /usr/local/bin/actions.mk
-}
-
-docker-compose -f test/docker-compose.yml up -d
-docker-compose -f test/docker-compose.yml logs
-
-run_action nginx check-ready max_try=10
-run_action php check-ready max_try=10
-
-# PHP tools
-docker_exec php tests.sh
-
-# SSH
-echo -n "Testing ssh... "
-docker_exec php touch /home/www-data/.ssh/known_hosts
-docker_exec php ssh www-data@sshd cat /home/www-data/.ssh/authorized_keys | grep -q admin@wodby.com
-echo "OK"
-
-# Git actions
-echo -n "Running git actions... "
-docker_exec php bash -c 'echo -e "Host bitbucket.org\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config'
-run_action php git-clone url="${git_url}" branch=master
-run_action php git-checkout target=develop
-echo "OK"
-
-# PHP-FPM
-echo -n "Checking PHP-FPM... "
-docker_exec php curl nginx | grep -q "Hello World!"
-echo "OK"
-
-# Walter CD
-echo -n "Running walter scripts... "
-run_action php walter
-docker_exec php cat ./walter-shell-stage
-docker_exec php cat ./walter-command-stage
-echo "OK"
-
-# Crond
-wait_for_cron
-
-docker-compose -f test/docker-compose.yml down
diff --git a/7.1/test/docker-compose.yml b/7.1/test/docker-compose.yml
deleted file mode 100644
index f0fd7b2c..00000000
--- a/7.1/test/docker-compose.yml
+++ /dev/null
@@ -1,95 +0,0 @@
-version: "2"
-
-services:
- nginx:
- image: wodby/nginx:1.13
- environment:
- DEBUG: 1
- NGINX_BACKEND_HOST: php
- volumes:
- - ./nginx.conf:/etc/gotpl/default-vhost.conf.tpl
- depends_on:
- - php
-
- sshd:
- image: $IMAGE
- command: sudo /usr/sbin/sshd -De
- environment:
- DEBUG: 1
- SSH_PUBLIC_KEYS: |-
- ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC4mQ9wfvufRcDQ4LsoCYEyDL4LNsvP8dWKWMQKrnJ8k09IQm7mnvyzid8zxNJpQYxX12foC0+BttjejWVj67vf1if7rDHb\/e0oX7yQp4ji3QTjDNPDaOR\/eTOCNv1C5Lfj3n7D1G7O2dOiw8lAoSalGy6nltuTYY9EXbkl1dXaCG7qbQRVJEJdZ6x2oJ8FubJO6wjZvj9P759ziLVmWAqtzUgIQVlbv0nqSoq16Ug381sfnRvsHO1fXGhdgHGQ0WP720p5cBHxG+62HJROah5b7gahXidC2Lo6kdnLb5FOzZjRJO1aDiKgry\/GoNNijs6D5xwLtn44HoHMe0eyUw7lQCrWZwvNmdfvIecr+ZJNwT8cbZ2Cf5y0SqD4JZpcolR5FKuQluaVMdOvJCa8A\/BzvRqIeNLmZuHFRvruu2VTIHHZFR2CFgH9F+G\/KyBnmQwV\/FgqN6sy1MAuFmyizL7sJHVL3tSaMPSs423A+SLWYkXLxpUPjo2J5W2ImZYq97AQaHcArvrhKS2MwbBFGwaxglcq5t8Ss6Df3fEZUWGLHJSdOv\/fn\/+CNOiI7hjj3v5mHaxxnC27MOHmJlrqmCA3OXuQ9mZG\/hSfj2vPKF+xFUarqqsp4zVsDH71bY2Q+zHpyncIFnyhaiEba9gbvmUVOfUyYglkJ6TGF5xAhpDFpQ== admin@wodby.com"]
-
- php:
- image: $IMAGE
- environment:
- SSH_DISABLE_STRICT_KEY_CHECKING: 1
- PHP_XDEBUG: 1
- PHP_BLACKFIRE: 1
- SSH_PRIVATE_KEY: |-
- -----BEGIN RSA PRIVATE KEY-----
- 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
- -----END RSA PRIVATE KEY-----
- volumes:
- - ./tests.sh:/usr/local/bin/tests.sh
- - ./php_modules:/home/www-data/php_modules
- depends_on:
- - sshd
-
- crond:
- image: $IMAGE
- command: sudo -E crond -f -d 0
- environment:
- CRONTAB_ENV: test
- CRONTAB: |-
- # min hour day month weekday command
- */1 * * * * echo "$${CRONTAB_ENV}" > /home/www-data/cron
- depends_on:
- - sshd
diff --git a/7.1/test/nginx.conf b/7.1/test/nginx.conf
deleted file mode 100644
index a89ce5ba..00000000
--- a/7.1/test/nginx.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-server {
- server_name default;
- listen 80;
-
- root /var/www/html/;
- index index.php;
-
- fastcgi_param REQUEST_METHOD $request_method;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- fastcgi_index index.php;
-
- location / {
- fastcgi_pass php:9000;
- }
-}
diff --git a/7/.dockerignore b/7/.dockerignore
new file mode 100644
index 00000000..4cd0d8b6
--- /dev/null
+++ b/7/.dockerignore
@@ -0,0 +1,4 @@
+tests
+Makefile
+check-configs.sh
+orig
\ No newline at end of file
diff --git a/7/Dockerfile b/7/Dockerfile
new file mode 100644
index 00000000..9ee45bc2
--- /dev/null
+++ b/7/Dockerfile
@@ -0,0 +1,354 @@
+ARG FROM_TAG
+
+FROM wodby/base-php:${FROM_TAG}
+
+ARG PHP_DEV
+ARG PHP_DEBUG
+
+ARG PECL_HTTP_PROXY
+
+ARG WODBY_USER_ID=1000
+ARG WODBY_GROUP_ID=1000
+
+ENV PHP_DEV="${PHP_DEV}" \
+ PHP_DEBUG="${PHP_DEBUG}" \
+ LD_PRELOAD="/usr/lib/preloadable_libiconv.so php"
+
+ENV APP_ROOT="/var/www/html" \
+ CONF_DIR="/var/www/conf" \
+ FILES_DIR="/mnt/files"
+
+ENV PATH="${PATH}:/home/wodby/.composer/vendor/bin:${APP_ROOT}/vendor/bin:${APP_ROOT}/bin" \
+ SSHD_HOST_KEYS_DIR="/etc/ssh" \
+ ENV="/home/wodby/.shrc" \
+ \
+ GIT_USER_EMAIL="wodby@example.com" \
+ GIT_USER_NAME="wodby"
+
+RUN set -xe; \
+ \
+ # Delete existing user/group if uid/gid occupied.
+ existing_group=$(getent group "${WODBY_GROUP_ID}" | cut -d: -f1); \
+ if [[ -n "${existing_group}" ]]; then delgroup "${existing_group}"; fi; \
+ existing_user=$(getent passwd "${WODBY_USER_ID}" | cut -d: -f1); \
+ if [[ -n "${existing_user}" ]]; then deluser "${existing_user}"; fi; \
+ \
+ apk add --no-cache -t .wodby-useradd-deps \
+ shadow=4.7-r1 \
+ linux-pam=1.3.1-r1 ; \
+ /usr/sbin/groupadd -g ${WODBY_GROUP_ID} wodby; \
+ /usr/sbin/useradd -s /bin/sh -g ${WODBY_GROUP_ID} -u ${WODBY_USER_ID} wodby; \
+ apk del --purge .wodby-useradd-deps ; \
+ adduser wodby www-data; \
+ sed -i '/^wodby/s/!/*/' /etc/shadow; \
+ \
+ apk add --update --no-cache -t .wodby-php-run-deps \
+ c-client=2007f-r11 \
+ fcgi \
+ findutils \
+ freetype=2.10.1-r0 \
+ git \
+ gmp=6.1.2-r1 \
+ icu-libs=64.2-r1 \
+ imagemagick=7.0.9.7-r0 \
+ jpegoptim=1.4.6-r0 \
+ less \
+ libbz2=1.0.8-r1 \
+ libevent=2.1.11-r0 \
+ libjpeg-turbo=2.0.4-r0 \
+ libjpeg-turbo-utils \
+ libldap=2.4.48-r1 \
+ libltdl=2.4.6-r7 \
+ libmemcached-libs=1.0.18-r4 \
+ libmcrypt=2.5.8-r7 \
+ libpng=1.6.37-r1 \
+ librdkafka=1.2.2-r0 \
+ libuuid=2.34-r1 \
+ libwebp=1.0.3-r0 \
+ libxml2=2.9.10-r2 \
+ libxslt=1.1.34-r0 \
+ libzip=1.5.2-r0 \
+ make \
+ mariadb-client \
+ nano \
+ openssh \
+ openssh-client \
+ patch \
+ pngquant \
+ postgresql-client \
+ rabbitmq-c=0.10.0-r0 \
+ rsync \
+ su-exec \
+ sudo \
+ tidyhtml-libs=5.6.0-r0 \
+ # todo: move out tig and tmux to -dev version.
+ tig \
+ tmux \
+ yaml=0.2.2-r1; \
+ \
+ if [[ -n "${PHP_DEV}" ]]; then \
+ apk add --update --no-cache -t .wodby-php-dev-run-deps yarn; \
+ fi; \
+ \
+ apk add --update --no-cache -t .wodby-php-build-deps \
+ autoconf \
+ cmake \
+ build-base \
+ bzip2-dev \
+ freetype-dev \
+ gmp-dev \
+ icu-dev \
+ imagemagick-dev \
+ imap-dev \
+ jpeg-dev \
+ krb5-dev \
+ libevent-dev \
+ libgcrypt-dev \
+ libjpeg-turbo-dev \
+ libmemcached-dev \
+ libmcrypt-dev \
+ libpng-dev \
+ librdkafka-dev \
+ libtool \
+ libwebp-dev \
+ libxslt-dev \
+ libzip-dev \
+ openldap-dev \
+ openssl-dev \
+ pcre-dev \
+ postgresql-dev \
+ rabbitmq-c-dev \
+ tidyhtml-dev \
+ yaml-dev; \
+ \
+ apk add -U --no-cache -t .wodby-php-edge-run-deps -X http://dl-cdn.alpinelinux.org/alpine/edge/community/ \
+ gnu-libiconv=1.15-r2; \
+ \
+ # Install redis-cli.
+ apk add --update --no-cache redis; \
+ mv /usr/bin/redis-cli /tmp/; \
+ apk del --purge redis; \
+ deluser redis; \
+ mv /tmp/redis-cli /usr/bin; \
+ \
+ docker-php-source extract; \
+ \
+ docker-php-ext-install \
+ bcmath \
+ bz2 \
+ calendar \
+ exif \
+ gmp \
+ intl \
+ ldap \
+ mysqli \
+ opcache \
+ pcntl \
+ pdo_mysql \
+ pdo_pgsql \
+ pgsql \
+ soap \
+ sockets \
+ tidy \
+ xmlrpc \
+ xsl \
+ zip; \
+ \
+ # GD
+ if [[ "${PHP_VERSION:0:3}" == "7.4" ]]; then \
+ docker-php-ext-configure gd \
+ --with-webp \
+ --with-freetype \
+ --with-jpeg; \
+ else \
+ docker-php-ext-configure gd \
+ --with-gd \
+ --with-webp-dir \
+ --with-freetype-dir=/usr/include/ \
+ --with-png-dir=/usr/include/ \
+ --with-jpeg-dir=/usr/include/; \
+ fi; \
+ NPROC=$(getconf _NPROCESSORS_ONLN); \
+ docker-php-ext-install "-j${NPROC}" gd; \
+ \
+ # IMAP
+ PHP_OPENSSL=yes docker-php-ext-configure imap \
+ --with-kerberos \
+ --with-imap-ssl; \
+ docker-php-ext-install "-j${NPROC}" imap; \
+ \
+ pecl config-set php_ini "${PHP_INI_DIR}/php.ini"; \
+ if [[ -n "${PECL_HTTP_PROXY}" ]]; then \
+ # Using pear as pecl throw errors: https://blog.flowl.info/2015/peclpear-behind-proxy-how-to/
+ pear config-set http_proxy "${PECL_HTTP_PROXY}"; \
+ fi; \
+ \
+ # NewRelic extension and agent.
+ newrelic_url="http://download.newrelic.com/php_agent/release/"; \
+ wget -r -nd --no-parent -P /tmp/newrelic -Alinux-musl.tar.gz "${newrelic_url}" >/dev/null 2>&1; \
+ tar -xzf /tmp/newrelic/newrelic-php*.tar.gz --strip=1 -C /tmp/newrelic; \
+ export NR_INSTALL_SILENT=true; \
+ export NR_INSTALL_USE_CP_NOT_LN=true; \
+ bash /tmp/newrelic/newrelic-install install; \
+ rm /usr/local/etc/php/conf.d/newrelic.ini; \
+ mkdir -p /var/log/newrelic/; \
+ chown -R www-data:www-data /var/log/newrelic/; \
+ chmod -R 775 /var/log/newrelic/; \
+ \
+ pecl install \
+ amqp-1.9.4 \
+ apcu-5.1.18 \
+ ast-1.0.5 \
+ ds-1.2.9 \
+ event-2.5.3 \
+ grpc-1.23.1 \
+ igbinary-3.0.1 \
+ imagick-3.4.4 \
+ mcrypt-1.0.3 \
+ memcached-3.1.4 \
+ mongodb-1.6.0 \
+ oauth-2.0.4 \
+ rdkafka-4.0.3 \
+ redis-4.3.0 \
+ uuid-1.0.4 \
+ xdebug-2.9.4 \
+ yaml-2.0.4; \
+ \
+ docker-php-ext-enable \
+ amqp \
+ apcu \
+ ast \
+ ds \
+ event \
+ igbinary \
+ imagick \
+ grpc \
+ mcrypt \
+ memcached \
+ mongodb \
+ oauth \
+ redis \
+ rdkafka \
+ uuid \
+ xdebug \
+ yaml; \
+ \
+ # Event extension should be loaded after sockets.
+ # http://osmanov-dev-notes.blogspot.com/2013/07/fixing-php-start-up-error-unable-to.html
+ mv /usr/local/etc/php/conf.d/docker-php-ext-event.ini /usr/local/etc/php/conf.d/z-docker-php-ext-event.ini; \
+ \
+ # Blackfire extension (they have free tier).
+ mkdir -p /tmp/blackfire; \
+ version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;"); \
+ blackfire_url="https://blackfire.io/api/v1/releases/probe/php/alpine/amd64/${version}"; \
+ wget -qO- "${blackfire_url}" | tar xz --no-same-owner -C /tmp/blackfire; \
+ mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so; \
+ \
+ # Uploadprogress.
+ mkdir -p /usr/src/php/ext/uploadprogress; \
+ up_url="https://github.com/wodby/pecl-php-uploadprogress/archive/latest.tar.gz"; \
+ wget -qO- "${up_url}" | tar xz --strip-components=1 -C /usr/src/php/ext/uploadprogress; \
+ docker-php-ext-install uploadprogress; \
+ \
+ # Tideways xhprof.
+ xhprof_ext_ver="5.0-beta3"; \
+ mkdir -p /usr/src/php/ext/tideways_xhprof; \
+ xhprof_url="https://github.com/tideways/php-xhprof-extension/archive/v${xhprof_ext_ver}.tar.gz"; \
+ wget -qO- "${xhprof_url}" | tar xz --strip-components=1 -C /usr/src/php/ext/tideways_xhprof; \
+ docker-php-ext-install tideways_xhprof; \
+ \
+ wget -qO- https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer; \
+ \
+ # Install Walter (deprecated).
+ walter_ver="1.4.0"; \
+ walter_url="https://github.com/walter-cd/walter/releases/download/v${walter_ver}/walter_${walter_ver}_linux_amd64.tar.gz"; \
+ wget -qO- "${walter_url}" | tar xz -C /tmp/; \
+ mv /tmp/walter_linux_amd64/walter /usr/local/bin; \
+ \
+ { \
+ echo 'export PS1="\u@${WODBY_APP_NAME:-php}.${WODBY_ENVIRONMENT_NAME:-container}:\w $ "'; \
+ # Make sure PATH is the same for ssh sessions.
+ echo "export PATH=${PATH}"; \
+ } | tee /home/wodby/.shrc; \
+ \
+ cp /home/wodby/.shrc /home/wodby/.bashrc; \
+ cp /home/wodby/.shrc /home/wodby/.bash_profile; \
+ \
+ { \
+ echo 'Defaults env_keep += "APP_ROOT FILES_DIR"' ; \
+ \
+ if [[ -n "${PHP_DEV}" ]]; then \
+ echo 'wodby ALL=(root) NOPASSWD:SETENV:ALL'; \
+ else \
+ echo -n 'wodby ALL=(root) NOPASSWD:SETENV: ' ; \
+ echo -n '/usr/local/bin/files_chmod, ' ; \
+ echo -n '/usr/local/bin/files_chown, ' ; \
+ echo -n '/usr/local/bin/files_sync, ' ; \
+ echo -n '/usr/local/bin/gen_ssh_keys, ' ; \
+ echo -n '/usr/local/bin/init_container, ' ; \
+ echo -n '/usr/local/bin/migrate, ' ; \
+ echo -n '/usr/local/sbin/php-fpm, ' ; \
+ echo -n '/usr/sbin/sshd, ' ; \
+ echo '/usr/sbin/crond' ; \
+ fi; \
+ } | tee /etc/sudoers.d/wodby; \
+ \
+ echo "TLS_CACERTDIR /etc/ssl/certs/" >> /etc/openldap/ldap.conf; \
+ \
+ install -o wodby -g wodby -d \
+ "${APP_ROOT}" \
+ "${CONF_DIR}" \
+ /home/wodby/.ssh; \
+ \
+ install -o www-data -g www-data -d \
+ "${FILES_DIR}/public" \
+ "${FILES_DIR}/private" \
+ "${FILES_DIR}/sessions" \
+ "${FILES_DIR}/xdebug/traces" \
+ "${FILES_DIR}/xdebug/profiler" \
+ /home/www-data/.ssh; \
+ \
+ chmod -R 775 "${FILES_DIR}"; \
+ chown -R wodby:wodby \
+ "${PHP_INI_DIR}/conf.d" \
+ /usr/local/etc/php-fpm.d \
+ /home/wodby/.[^.]*; \
+ \
+ touch /etc/ssh/sshd_config /etc/gitconfig; \
+ chown wodby: /etc/ssh/sshd_config /etc/gitconfig; \
+ \
+ rm /etc/crontabs/root; \
+ # deprecated: remove in favor of bind mounts.
+ touch /etc/crontabs/www-data; \
+ chown root:www-data /etc/crontabs/www-data; \
+ chmod 660 /etc/crontabs/www-data; \
+ \
+ su-exec wodby composer clear-cache; \
+ docker-php-source delete; \
+ apk del --purge .wodby-php-build-deps; \
+ pecl clear-cache; \
+ \
+ rm -rf \
+ /usr/src/php/ext/ast \
+ /usr/src/php/ext/uploadprogress \
+ /usr/include/php \
+ /usr/lib/php/build \
+ /tmp/* \
+ /root/.composer \
+ /var/cache/apk/*; \
+ \
+ if [[ -z "${PHP_DEV}" ]]; then \
+ rm -rf /usr/src/php.tar.xz; \
+ fi
+
+USER wodby
+
+WORKDIR ${APP_ROOT}
+EXPOSE 9000
+
+COPY templates /etc/gotpl/
+COPY docker-entrypoint.sh /
+COPY bin /usr/local/bin/
+
+ENTRYPOINT ["/docker-entrypoint.sh"]
+CMD ["sudo", "-E", "LD_PRELOAD=/usr/lib/preloadable_libiconv.so", "php-fpm"]
diff --git a/7/Makefile b/7/Makefile
new file mode 100644
index 00000000..8586cc44
--- /dev/null
+++ b/7/Makefile
@@ -0,0 +1,82 @@
+-include env_make
+
+PHP_VER ?= 7.4.5
+PHP_VER_MINOR ?= $(shell echo "${PHP_VER}" | grep -oE '^[0-9]+\.[0-9]+')
+
+REPO = wodby/php
+NAME = php-$(PHP_VER_MINOR)
+FROM_TAG = $(PHP_VER)
+
+WODBY_USER_ID ?= 1000
+WODBY_GROUP_ID ?= 1000
+
+PECL_HTTP_PROXY ?= ""
+
+ifeq ($(TAG),)
+ ifneq ($(PHP_DEBUG),)
+ TAG ?= $(PHP_VER_MINOR)-debug
+ else ifneq ($(PHP_DEV),)
+ TAG ?= $(PHP_VER_MINOR)-dev
+ else
+ TAG ?= $(PHP_VER_MINOR)
+ endif
+endif
+
+ifneq ($(PHP_DEV),)
+ NAME := $(NAME)-dev
+endif
+
+ifneq ($(PHP_DEBUG),)
+ NAME := $(NAME)-debug
+ FROM_TAG := $(FROM_TAG)-debug
+ PHP_DEV := 1
+endif
+
+ifneq ($(STABILITY_TAG),)
+ ifneq ($(TAG),latest)
+ override TAG := $(TAG)-$(STABILITY_TAG)
+ endif
+endif
+
+.PHONY: build test push shell run start stop logs clean release
+
+default: build
+
+build:
+ docker build -t $(REPO):$(TAG) \
+ --build-arg FROM_TAG=$(FROM_TAG) \
+ --build-arg PHP_DEV=$(PHP_DEV) \
+ --build-arg PHP_DEBUG=$(PHP_DEBUG) \
+ --build-arg WODBY_USER_ID=$(WODBY_USER_ID) \
+ --build-arg WODBY_GROUP_ID=$(WODBY_GROUP_ID) \
+ --build-arg PECL_HTTP_PROXY=$(PECL_HTTP_PROXY) \
+ ./
+
+test:
+ cd ./tests && IMAGE=$(REPO):$(TAG) ./run.sh
+
+push:
+ docker push $(REPO):$(TAG)
+
+shell:
+ docker run --rm --name $(NAME) -i -t $(PORTS) $(VOLUMES) $(ENV) $(REPO):$(TAG) /bin/bash
+
+run:
+ docker run --rm --name $(NAME) $(PORTS) $(VOLUMES) $(ENV) $(REPO):$(TAG) $(CMD)
+
+start:
+ docker run -d --name $(NAME) $(PORTS) $(VOLUMES) $(ENV) $(REPO):$(TAG)
+
+stop:
+ docker stop $(NAME)
+
+logs:
+ docker logs $(NAME)
+
+clean:
+ -docker rm -f $(NAME)
+
+check-configs:
+ ./check-configs.sh $(PHP_VER) $(PHP_VER_MINOR)
+
+release: build push
diff --git a/5.6/actions/actions.mk b/7/bin/actions.mk
similarity index 57%
rename from 5.6/actions/actions.mk
rename to 7/bin/actions.mk
index 73a9c9f6..a0ababda 100644
--- a/5.6/actions/actions.mk
+++ b/7/bin/actions.mk
@@ -1,4 +1,4 @@
-.PHONY: git-clone git-checkout walter check-ready check-live
+.PHONY: migrate git-clone git-checkout files-import files-link walter check-ready check-live
check_defined = \
$(strip $(foreach 1,$1, \
@@ -19,19 +19,30 @@ service = PHP-FPM
default: check-ready
+migrate:
+ sudo migrate $(from) $(to)
+
git-clone:
$(call check_defined, url)
- git-clone.sh $(url) $(branch)
+ git_clone $(url) $(branch)
git-checkout:
$(call check_defined, target)
- git-checkout.sh $(target) $(is_hash)
+ git_checkout $(target) $(is_hash)
+
+files-import:
+ $(call check_defined, source)
+ files_import $(source)
+
+files-link:
+ $(call check_defined, public_dir)
+ files_link $(public_dir)
walter:
- walter.sh
+ test ! -f "$(APP_ROOT)/wodby.yml" || walter -c "$(APP_ROOT)/wodby.yml"
check-ready:
- wait-for.sh "$(command)" $(service) $(host) $(max_try) $(wait_seconds) $(delay_seconds)
+ wait_for "$(command)" $(service) $(host) $(max_try) $(wait_seconds) $(delay_seconds)
check-live:
@echo "OK"
diff --git a/7/bin/files_chmod b/7/bin/files_chmod
new file mode 100755
index 00000000..f62a05e6
--- /dev/null
+++ b/7/bin/files_chmod
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+
+set -e
+
+if [[ -n "${DEBUG}" ]]; then
+ set -x
+fi
+
+dir=$1
+
+if [[ "${dir}" =~ ^"${FILES_DIR}/" ]]; then
+ chmod -R ug=rwX,o=rX "${dir}"
+else
+ echo "Only dir/files under ${FILES_DIR} allowed"
+ exit 1
+fi
diff --git a/7/bin/files_chown b/7/bin/files_chown
new file mode 100755
index 00000000..c99b147c
--- /dev/null
+++ b/7/bin/files_chown
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+
+set -e
+
+if [[ -n "${DEBUG}" ]]; then
+ set -x
+fi
+
+dir=$1
+
+if [[ "${dir}" =~ ^"${FILES_DIR}/" ]]; then
+ chown -R www-data:www-data "${dir}"
+else
+ echo "Only dir/files under ${FILES_DIR} allowed"
+ exit 1
+fi
diff --git a/7/bin/files_import b/7/bin/files_import
new file mode 100755
index 00000000..faf188e8
--- /dev/null
+++ b/7/bin/files_import
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+set -e
+
+if [[ -n "${DEBUG}" ]]; then
+ set -x
+fi
+
+source=$1
+tmp_dir="/tmp/source"
+
+get_archive "${source}" "${tmp_dir}" "zip tgz tar.gz tar"
+
+# TODO: allow top level dir import only for wodby archives.
+if [[ -f "${tmp_dir}/.wodby" || (-d "${tmp_dir}/private" && -d "${tmp_dir}/public") ]]; then
+ echo "Wodby backup archive detected. Importing to top directory"
+ sudo files_sync "${tmp_dir}/" "${FILES_DIR}"
+else
+ echo "Importing files to public directory"
+ sudo files_sync "${tmp_dir}/" "${FILES_DIR}/public/"
+fi
+
+rm -rf "${tmp_dir}"
\ No newline at end of file
diff --git a/7/bin/files_link b/7/bin/files_link
new file mode 100755
index 00000000..548da8e9
--- /dev/null
+++ b/7/bin/files_link
@@ -0,0 +1,35 @@
+#!/usr/bin/env bash
+
+set -e
+
+if [[ -n "${DEBUG}" ]]; then
+ set -x
+fi
+
+app_public_dir=$1
+
+# Add symlink from persistent files volume to application's storage public dir.
+if [[ -n "${app_public_dir}" ]]; then
+ echo "Application's public storage dir specified, trying to symlink from files persistent volume"
+
+ if [[ -d "${app_public_dir}" ]]; then
+ if [[ ! -L "${app_public_dir}" ]]; then
+ if [[ "$(ls -A "${app_public_dir}")" ]]; then
+ echo "Error: failed to symlink public storage directory to a persistent volume"
+ echo "Directory ${app_public_dir} must not exists or be empty"
+ echo "(use files import to migrate existing public files)"
+ exit 1
+ # If dir is not symlink and empty, remove it and link.
+ else
+ echo "Empty public storage dir detected: removing and symlinking"
+ rm -rf "${app_public_dir}"
+ ln -sf "${FILES_DIR}/public" "${app_public_dir}"
+ fi
+ else
+ echo "Symlink already in place"
+ fi
+ else
+ echo "No public storage dir detected: just symlinking"
+ ln -sf "${FILES_DIR}/public" "${app_public_dir}"
+ fi
+fi
diff --git a/7/bin/files_sync b/7/bin/files_sync
new file mode 100755
index 00000000..c54ad257
--- /dev/null
+++ b/7/bin/files_sync
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+set -e
+
+if [[ -n "${DEBUG}" ]]; then
+ set -x
+fi
+
+from=$1
+to=$2
+
+if [[ "${to}" == "${FILES_DIR}" || "${to}" =~ ^"${FILES_DIR}/" ]]; then
+ rsync -rltpog --chown=www-data:www-data "${from}" "${to}"
+ # Ensure files volume permissions are still correct.
+ init_container
+else
+ echo "Invalid destination. Must be under ${FILES_DIR}"
+ exit 1
+fi
diff --git a/5.3/actions/git-checkout.sh b/7/bin/git_checkout
similarity index 100%
rename from 5.3/actions/git-checkout.sh
rename to 7/bin/git_checkout
diff --git a/5.3/actions/git-clone.sh b/7/bin/git_clone
similarity index 100%
rename from 5.3/actions/git-clone.sh
rename to 7/bin/git_clone
diff --git a/7/bin/init_container b/7/bin/init_container
new file mode 100755
index 00000000..e506c29e
--- /dev/null
+++ b/7/bin/init_container
@@ -0,0 +1,43 @@
+#!/usr/bin/env bash
+
+set -e
+
+if [[ -n "${DEBUG}" ]]; then
+ set -x
+fi
+
+chown wodby:wodby "${APP_ROOT}"
+
+declare -a dirs=(
+ "${FILES_DIR}"
+ "${FILES_DIR}/public"
+ "${FILES_DIR}/private"
+ "${FILES_DIR}/sessions"
+ "${FILES_DIR}/xdebug/profiler"
+ "${FILES_DIR}/xdebug/traces"
+)
+
+if [[ -n $1 && $1 =~ ^"${FILES_DIR}/" ]]; then
+ dirs+=($1)
+fi
+
+for dir in "${dirs[@]}"; do
+ mkdir -p "${dir}"
+ chown www-data:www-data "${dir}"
+ chmod 775 "${dir}"
+done
+
+if [[ -f /etc/crontabs/www-data && -z "${CRONTAB}" ]]; then
+ chown root:www-data /etc/crontabs/www-data
+ chmod 660 /etc/crontabs/www-data
+fi
+
+if [[ -f /home/wodby/.ssh/id_rsa ]]; then
+ chown wodby:wodby /home/wodby/.ssh/id_rsa
+ chmod 600 /home/wodby/.ssh/id_rsa
+fi
+
+if [[ -f /home/wodby/.ssh/authorized_keys ]]; then
+ chown wodby:wodby /home/wodby/.ssh/authorized_keys
+ chmod 600 /home/wodby/.ssh/authorized_keys
+fi
diff --git a/7/bin/migrate b/7/bin/migrate
new file mode 100755
index 00000000..91548f4d
--- /dev/null
+++ b/7/bin/migrate
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+
+set -e
+
+if [[ -n "${DEBUG}" ]]; then
+ set -x
+fi
+
+from="${1:-}"
+to="${2:-}"
+
+# Default user changed from www-data (82) to wodby (1000), change recursively codebase permissions on volume.
+if [[ "${to:0:1}" == 5 && "${from:0:1}" < 5 ]]; then
+ echo "Migrating to a new major 5.x version."
+ echo "Fixing permissions for codebase volume except symlinks (public files dir)"
+ find "${APP_ROOT}" -uid 82 ! -type l -exec chown wodby:wodby {} +
+fi
diff --git a/7/check-configs.sh b/7/check-configs.sh
new file mode 100755
index 00000000..82a15b2a
--- /dev/null
+++ b/7/check-configs.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+
+set -e
+
+if [[ -n "${DEBUG}" ]]; then
+ set -x
+fi
+
+php_ver=$1
+php_ver_minor=$2
+
+url="https://raw.githubusercontent.com/php/php-src/php-${php_ver}"
+
+array=(
+ "./orig/php-${php_ver_minor}.ini-development::${url}/php.ini-development"
+ "./orig/php-${php_ver_minor}.ini-production::${url}/php.ini-production"
+)
+
+outdated=0
+
+for index in "${array[@]}" ; do
+ local="${index%%::*}"
+ url="${index##*::}"
+
+ orig="/tmp/${RANDOM}"
+ wget -qO "${orig}" "${url}"
+
+ echo "Checking ${local}"
+
+ if diff --strip-trailing-cr "${local}" "${orig}"; then
+ echo "OK"
+ else
+ echo "!!! OUTDATED"
+ echo "${url}"
+ outdated=1
+ fi
+
+ rm -f "${orig}"
+done
+
+# we don't want travis builds to fail.
+#[[ "${outdated}" == 0 ]] || exit 1
\ No newline at end of file
diff --git a/7/docker-entrypoint.sh b/7/docker-entrypoint.sh
new file mode 100755
index 00000000..b8c2e2fa
--- /dev/null
+++ b/7/docker-entrypoint.sh
@@ -0,0 +1,119 @@
+#!/usr/bin/env bash
+
+set -e
+
+if [[ -n "${DEBUG}" ]]; then
+ set -x
+fi
+
+ssh_dir=/home/wodby/.ssh
+
+_gotpl() {
+ if [[ -f "/etc/gotpl/$1" ]]; then
+ gotpl "/etc/gotpl/$1" > "$2"
+ fi
+}
+
+# @deprecated will be removed in favor of bind mounts (config maps).
+init_ssh_client() {
+ if [[ -n "${SSH_PRIVATE_KEY}" ]]; then
+ _gotpl "id_rsa.tmpl" "${ssh_dir}/id_rsa"
+ chmod -f 600 "${ssh_dir}/id_rsa"
+ unset SSH_PRIVATE_KEY
+ fi
+}
+
+init_sshd() {
+ _gotpl "sshd_config.tmpl" "/etc/ssh/sshd_config"
+
+ # @deprecated will be removed in favor of bind mounts (config maps).
+ if [[ -n "${SSH_PUBLIC_KEYS}" ]]; then
+ _gotpl "authorized_keys.tmpl" "${ssh_dir}/authorized_keys"
+ unset SSH_PUBLIC_KEYS
+ fi
+
+ printenv | xargs -I{} echo {} | awk ' \
+ BEGIN { FS = "=" }; { \
+ if ($1 != "HOME" \
+ && $1 != "PWD" \
+ && $1 != "SHLVL") { \
+ \
+ print ""$1"="$2"" \
+ } \
+ }' > "${ssh_dir}/environment"
+
+ sudo gen_ssh_keys "rsa" "${SSHD_HOST_KEYS_DIR}"
+}
+
+# @deprecated will be removed in favor of bind mounts (config maps).
+init_crond() {
+ if [[ -n "${CRONTAB}" ]]; then
+ _gotpl "crontab.tmpl" "/etc/crontabs/www-data"
+ fi
+}
+
+process_templates() {
+ local php_ver_minor="${PHP_VERSION:0:3}"
+
+ if [[ -n "${PHP_DEV}" ]]; then
+ export PHP_FPM_CLEAR_ENV="${PHP_FPM_CLEAR_ENV:-no}"
+ fi
+
+ if [[ -n "${PHP_DEBUG}" ]]; then
+ export PHP_FPM_LOG_LEVEL="${PHP_FPM_LOG_LEVEL:-debug}"
+ else
+ # Extensions that don't work with --enabled-debug
+ _gotpl "docker-php-ext-blackfire.ini.tmpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-blackfire.ini"
+ _gotpl "docker-php-ext-newrelic.ini.tmpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-newrelic.ini"
+ fi
+
+ _gotpl "docker-php-${php_ver_minor}.ini.tmpl" "${PHP_INI_DIR}/conf.d/docker-php.ini"
+ _gotpl "docker-php-ext-apcu.ini.tmpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-apcu.ini"
+ _gotpl "docker-php-ext-igbinary.ini.tmpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-igbinary.ini"
+ _gotpl "docker-php-ext-tideways_xhprof.ini.tmpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-tideways_xhprof.ini"
+ _gotpl "docker-php-ext-xdebug.ini.tmpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-xdebug.ini"
+ _gotpl "docker-php-ext-opcache.ini.tmpl" "${PHP_INI_DIR}/conf.d/docker-php-ext-opcache.ini"
+
+ _gotpl "zz-www.conf.tmpl" "/usr/local/etc/php-fpm.d/zz-www.conf"
+ _gotpl "wodby.settings.php.tmpl" "${CONF_DIR}/wodby.settings.php"
+ _gotpl "ssh_config.tmpl" "${ssh_dir}/config"
+ _gotpl "gitconfig.tmpl" "/etc/gitconfig"
+}
+
+disable_modules() {
+ local dir="${PHP_INI_DIR}/conf.d"
+
+ if [[ -n "${PHP_EXTENSIONS_DISABLE}" ]]; then
+ IFS=',' read -r -a modules <<< "${PHP_EXTENSIONS_DISABLE}"
+
+ for module in "${modules[@]}"; do
+ if [[ -f "${dir}/z-docker-php-ext-${module}.ini" ]]; then
+ rm "${dir}/z-docker-php-ext-${module}.ini";
+ elif [[ -f "${dir}/docker-php-ext-${module}.ini" ]]; then
+ rm "${dir}/docker-php-ext-${module}.ini";
+ else
+ echo "WARNING: instructed to disable module ${module} but it was not found"
+ fi
+ done
+ fi
+}
+
+sudo init_container
+
+init_ssh_client
+process_templates
+disable_modules
+
+if [[ "${@:1:2}" == "sudo /usr/sbin/sshd" ]]; then
+ init_sshd
+elif [[ "${@:1:3}" == "sudo -E crond" || "${@:1:4}" == "sudo -E LD_PRELOAD=/usr/lib/preloadable_libiconv.so crond" ]]; then
+ init_crond
+fi
+
+exec_init_scripts
+
+if [[ "${1}" == "make" ]]; then
+ exec "${@}" -f /usr/local/bin/actions.mk
+else
+ exec /usr/local/bin/docker-php-entrypoint "${@}"
+fi
diff --git a/7.1/php.ini b/7/orig/php-7.1.ini-development
similarity index 98%
rename from 7.1/php.ini
rename to 7/orig/php-7.1.ini-development
index e1b5f786..74e1f4a1 100644
--- a/7.1/php.ini
+++ b/7/orig/php-7.1.ini-development
@@ -884,7 +884,6 @@ default_socket_timeout = 60
; default extension directory.
;
; Windows Extensions
-; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+)
; extension folders as well as the separate PECL DLL download (PHP 5+).
; Be sure to appropriately set the extension_dir directive.
@@ -904,6 +903,7 @@ default_socket_timeout = 60
;extension=php_exif.dll ; Must be after mbstring as it depends on it
;extension=php_mysqli.dll
;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
+;extension=php_odbc.dll
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
@@ -975,6 +975,13 @@ cli_server.color = On
; otherwise output encoding conversion cannot be performed.
;iconv.output_encoding =
+[imap]
+; rsh/ssh logins are disabled by default. Use this INI entry if you want to
+; enable them. Note that the IMAP library does not filter mailbox names before
+; passing them to rsh/ssh command, thus passing untrusted data to this function
+; with rsh/ssh enabled is insecure.
+;imap.enable_insecure_rsh=0
+
[intl]
;intl.default_locale =
; This directive allows you to produce PHP errors when some error
@@ -984,8 +991,19 @@ cli_server.color = On
;intl.use_exceptions = 0
[sqlite3]
+; Directory pointing to SQLite3 extensions
+; http://php.net/sqlite3.extension-dir
;sqlite3.extension_dir =
+; SQLite defensive mode flag (only available from SQLite 3.26+)
+; When the defensive flag is enabled, language features that allow ordinary
+; SQL to deliberately corrupt the database file are disabled. This forbids
+; writing directly to the schema, shadow tables (eg. FTS data tables), or
+; the sqlite_dbpage virtual table.
+; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html
+; (for older SQLite versions, this flag has no use)
+sqlite3.defensive = 1
+
[Pcre]
;PCRE library backtracking limit.
; http://php.net/pcre.backtrack-limit
@@ -1049,7 +1067,7 @@ smtp_port = 25
;mail.force_extra_parameters =
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
-mail.add_x_header = On
+mail.add_x_header = Off
; The path to a log file that will log all mail() calls. Log entries include
; the full path of the script, line number, To address and headers.
@@ -1905,6 +1923,10 @@ ldap.max_links = -1
; Prevent name collisions in chroot'ed environment.
;opcache.validate_root=0
+; If specified, it produces opcode dumps for debugging different stages of
+; optimizations.
+;opcache.opt_debug_level=0
+
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
@@ -1930,4 +1952,4 @@ ldap.max_links = -1
; Local Variables:
; tab-width: 4
-; End:
\ No newline at end of file
+; End:
diff --git a/7.0/php.ini b/7/orig/php-7.1.ini-production
similarity index 95%
rename from 7.0/php.ini
rename to 7/orig/php-7.1.ini-production
index f9d7feee..0658bf89 100644
--- a/7.0/php.ini
+++ b/7/orig/php-7.1.ini-production
@@ -83,7 +83,7 @@
; development version only in development environments, as errors shown to
; application users can inadvertently leak otherwise secure information.
-; This is php.ini-development INI file.
+; This is php.ini-production INI file.
;;;;;;;;;;;;;;;;;;;
; Quick Reference ;
@@ -143,7 +143,7 @@
; Development Value: 1000
; Production Value: 1000
-; session.hash_bits_per_character
+; session.sid_bits_per_character
; Default Value: 4
; Development Value: 5
; Production Value: 5
@@ -158,11 +158,6 @@
; Development Value: On
; Production Value: Off
-; url_rewriter.tags
-; Default Value: "a=href,area=href,frame=src,form=,fieldset="
-; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
-; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry"
-
; variables_order
; Default Value: "EGPCS"
; Development Value: "GPCS"
@@ -244,6 +239,23 @@ output_buffering = 4096
; http://php.net/output-handler
;output_handler =
+; URL rewriter function rewrites URL on the fly by using
+; output buffer. You can set target tags by this configuration.
+; "form" tag is special tag. It will add hidden input tag to pass values.
+; Refer to session.trans_sid_tags for usage.
+; Default Value: "form="
+; Development Value: "form="
+; Production Value: "form="
+;url_rewriter.tags
+
+; URL rewriter will not rewrites absolute URL nor form by default. To enable
+; absolute URL rewrite, allowed hosts must be defined at RUNTIME.
+; Refer to session.trans_sid_hosts for more details.
+; Default Value: ""
+; Development Value: ""
+; Production Value: ""
+;url_rewriter.hosts
+
; Transparent output compression using the zlib library
; Valid values for this option are 'off', 'on', or a specific buffer size
; to be used for compression (default is 4KB)
@@ -285,7 +297,10 @@ unserialize_callback_func =
; When floats & doubles are serialized store serialize_precision significant
; digits after the floating point. The default value ensures that when floats
; are decoded with unserialize, the data will remain the same.
-serialize_precision = 17
+; The value is also used for json_encode when encoding double values.
+; If -1 is used, then dtoa mode 0 is used which automatically select the best
+; precision.
+serialize_precision = -1
; open_basedir, if set, limits all file operations to the defined directory
; and below. This directive makes most sense if used in a per-directory
@@ -442,7 +457,7 @@ memory_limit = 128M
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; http://php.net/error-reporting
-error_reporting = E_ALL
+error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
; This directive controls whether or not and where PHP will output errors,
; notices and warnings too. Error output is very useful during development, but
@@ -459,7 +474,7 @@ error_reporting = E_ALL
; Development Value: On
; Production Value: Off
; http://php.net/display-errors
-display_errors = On
+display_errors = Off
; The display of errors which occur during PHP's startup sequence are handled
; separately from display_errors. PHP's default behavior is to suppress those
@@ -470,7 +485,7 @@ display_errors = On
; Development Value: On
; Production Value: Off
; http://php.net/display-startup-errors
-display_startup_errors = On
+display_startup_errors = Off
; Besides displaying errors, PHP can also log errors to locations such as a
; server-specific log, STDERR, or a location specified by the error_log
@@ -514,7 +529,7 @@ report_memleaks = On
; Development Value: On
; Production Value: Off
; http://php.net/track-errors
-track_errors = On
+track_errors = Off
; Turn off normal error reporting and emit XML-RPC error XML
; http://php.net/xmlrpc-errors
@@ -869,7 +884,6 @@ default_socket_timeout = 60
; default extension directory.
;
; Windows Extensions
-; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+)
; extension folders as well as the separate PECL DLL download (PHP 5+).
; Be sure to appropriately set the extension_dir directive.
@@ -889,6 +903,7 @@ default_socket_timeout = 60
;extension=php_exif.dll ; Must be after mbstring as it depends on it
;extension=php_mysqli.dll
;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
+;extension=php_odbc.dll
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
@@ -960,6 +975,13 @@ cli_server.color = On
; otherwise output encoding conversion cannot be performed.
;iconv.output_encoding =
+[imap]
+; rsh/ssh logins are disabled by default. Use this INI entry if you want to
+; enable them. Note that the IMAP library does not filter mailbox names before
+; passing them to rsh/ssh command, thus passing untrusted data to this function
+; with rsh/ssh enabled is insecure.
+;imap.enable_insecure_rsh=0
+
[intl]
;intl.default_locale =
; This directive allows you to produce PHP errors when some error
@@ -969,8 +991,19 @@ cli_server.color = On
;intl.use_exceptions = 0
[sqlite3]
+; Directory pointing to SQLite3 extensions
+; http://php.net/sqlite3.extension-dir
;sqlite3.extension_dir =
+; SQLite defensive mode flag (only available from SQLite 3.26+)
+; When the defensive flag is enabled, language features that allow ordinary
+; SQL to deliberately corrupt the database file are disabled. This forbids
+; writing directly to the schema, shadow tables (eg. FTS data tables), or
+; the sqlite_dbpage virtual table.
+; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html
+; (for older SQLite versions, this flag has no use)
+sqlite3.defensive = 1
+
[Pcre]
;PCRE library backtracking limit.
; http://php.net/pcre.backtrack-limit
@@ -1034,7 +1067,7 @@ smtp_port = 25
;mail.force_extra_parameters =
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
-mail.add_x_header = On
+mail.add_x_header = Off
; The path to a log file that will log all mail() calls. Log entries include
; the full path of the script, line number, To address and headers.
@@ -1182,7 +1215,7 @@ mysqlnd.collect_statistics = On
; Enable / Disable collection of memory usage statistics by mysqlnd which can be
; used to tune and monitor MySQL operations.
; http://php.net/mysqlnd.collect_memory_statistics
-mysqlnd.collect_memory_statistics = On
+mysqlnd.collect_memory_statistics = Off
; Records communication from all extensions using mysqlnd to the specified log
; file.
@@ -1434,19 +1467,6 @@ session.gc_maxlifetime = 1440
; http://php.net/session.referer-check
session.referer_check =
-; How many bytes to read from the file.
-; http://php.net/session.entropy-length
-;session.entropy_length = 32
-
-; Specified here to create the session id.
-; http://php.net/session.entropy-file
-; Defaults to /dev/urandom
-; On systems that don't have /dev/urandom but do have /dev/arandom, this will default to /dev/arandom
-; If neither are found at compile time, the default is no entropy file.
-; On windows, setting the entropy_length setting will activate the
-; Windows random source (using the CryptoAPI)
-;session.entropy_file = /dev/urandom
-
; Set to {nocache,private,public,} to determine HTTP caching aspects
; or leave this empty to avoid sending anti-caching headers.
; http://php.net/session.cache-limiter
@@ -1468,15 +1488,39 @@ session.cache_expire = 180
; http://php.net/session.use-trans-sid
session.use_trans_sid = 0
-; Select a hash function for use in generating session ids.
-; Possible Values
-; 0 (MD5 128 bits)
-; 1 (SHA-1 160 bits)
-; This option may also be set to the name of any hash function supported by
-; the hash extension. A list of available hashes is returned by the hash_algos()
-; function.
-; http://php.net/session.hash-function
-session.hash_function = 0
+; Set session ID character length. This value could be between 22 to 256.
+; Shorter length than default is supported only for compatibility reason.
+; Users should use 32 or more chars.
+; http://php.net/session.sid-length
+; Default Value: 32
+; Development Value: 26
+; Production Value: 26
+session.sid_length = 26
+
+; The URL rewriter will look for URLs in a defined set of HTML tags.
+;