Compare commits

..

45 Commits
0.13 ... 0.27

Author SHA1 Message Date
cytopia
89cd367c1e Merge pull request #39 from devilbox/release-0.27
Sane defaults for php.ini
2018-07-29 10:16:52 +02:00
cytopia
99754afd72 max_input_vars does not yet exist in PHP 5.3 2018-07-28 11:46:59 +02:00
cytopia
b2a7e7b041 Ensure memory_limit, post_max_size and upload_max_filesize have a correct ration 2018-07-28 11:39:59 +02:00
cytopia
9c9d325724 Ensure deprecated ini settings are removed in respective versions 2018-07-28 11:28:24 +02:00
cytopia
1b6799da58 Sane defaults for php.ini 2018-07-28 10:55:57 +02:00
cytopia
b66ddfbd3e Merge pull request #38 from devilbox/linkcheck
Add tool: linkcheck
2018-07-28 08:58:09 +02:00
cytopia
1663d3af7d Add tool: linkcheck 2018-07-27 19:36:45 +02:00
cytopia
46512b05a1 Merge pull request #37 from devilbox/release-0.25
Add PHPUnit
2018-07-27 18:03:52 +02:00
cytopia
a95be98d1c Add PHPUnit 2018-07-27 14:04:39 +02:00
cytopia
ba0709f3f0 Merge pull request #35 from devilbox/release-0.24
Add tool: Ansible
2018-07-23 08:27:23 +02:00
cytopia
329e7bf2ec Fix build error 2018-07-22 20:54:05 +02:00
cytopia
d84cc5708c Ansible dependencies 2018-07-22 20:38:52 +02:00
cytopia
21177a801c Add tool: Ansible 2018-07-22 10:42:27 +02:00
cytopia
d9ae1e9ff5 Merge pull request #34 from devilbox/release-0.23
Add tool: patch
2018-07-20 23:22:07 +02:00
cytopia
c6750acfce Add tool: patch 2018-07-20 19:00:08 +02:00
cytopia
5751f9ae96 Merge pull request #33 from devilbox/release-0.22
Add tool: Codeception
2018-07-20 18:58:57 +02:00
cytopia
72b675fa2a Add tool: Codeception 2018-07-20 16:23:35 +02:00
cytopia
1c867e1cfc Merge pull request #32 from Tuurlijk/master
Add mhsendmail for optional mailhandling by MailHog
2018-07-16 08:41:03 +02:00
Michiel Roos
e3512da650 Add mhsendmail so it can be used in php.ini to enable mailhandling by MailHog 2018-07-13 22:44:06 +02:00
cytopia
b2dc2c7704 Merge pull request #31 from devilbox/release-0.21
Fix swoole for PHP 7.0
2018-06-17 23:30:56 +02:00
cytopia
a3819e9add Fix swoole for PHP 7.0 2018-06-17 19:03:47 +02:00
cytopia
c4a75f61a5 Merge pull request #29 from devilbox/release-0.20
Fix dependencies
2018-05-28 00:29:17 +02:00
cytopia
d081de866b Fix dependencies and swoole 2018-05-27 14:21:26 +02:00
cytopia
4c09729cf3 Fix dependencies 2018-05-27 13:05:17 +02:00
cytopia
c7389796b4 Merge pull request #28 from devilbox/hotfix-typo
Fix typo
2018-05-21 23:09:29 +02:00
cytopia
9398cefbe2 Fix typo 2018-05-21 23:08:43 +02:00
cytopia
a1092be181 Merge pull request #26 from devilbox/release-0.18
Add Module: IonCube
2018-05-21 19:22:22 +02:00
cytopia
42b811f068 Provide ionCube, but disabled by default 2018-05-21 13:24:29 +02:00
cytopia
6507383d94 Use curl to download ionCube 2018-05-21 09:40:05 +02:00
cytopia
85f36d7c6b Add Module: IonCube 2018-05-21 09:40:01 +02:00
cytopia
8ed060fd60 Merge pull request #27 from devilbox/release-0.19
Feature: Disable PHP modules
2018-05-21 09:38:35 +02:00
cytopia
a4924537de Feature: Disable PHP modules 2018-05-20 16:43:44 +02:00
cytopia
de3b0dcc17 Merge pull request #25 from devilbox/release-0.17
Trust custom certificates/CA if you choose to
2018-05-16 18:08:58 +02:00
cytopia
920d656cc1 Merge pull request #24 from devilbox/release-0.16
Add PhotonCMS binary
2018-05-16 08:29:58 +02:00
cytopia
41581bf9a3 Disable photon in PHP 5.3/5.4 2018-05-15 13:23:24 +02:00
cytopia
aab7599eab Use latest photon version without fixing 2018-05-15 10:30:39 +02:00
cytopia
16c113d404 Fix photon version check 2018-05-15 09:03:28 +02:00
cytopia
90458c9b29 Trust custom certificates/CA if you choose to 2018-05-15 08:32:53 +02:00
cytopia
7c498fd369 Fix photon cli installation 2018-05-15 00:27:51 +02:00
cytopia
9ee2da9fa3 Add photon binary 2018-05-14 21:34:31 +02:00
cytopia
1df74274a1 Merge pull request #23 from devilbox/release-0.15
Fix PHP 7.3
2018-05-14 21:29:23 +02:00
cytopia
182eda1f05 Fix PHP 7.3 2018-05-14 20:15:46 +02:00
cytopia
44e365b14c Merge pull request #22 from devilbox/release-0.14
New container: PHP 7.3
2018-05-14 14:40:37 +02:00
cytopia
a40f3a4307 Update PHP modules 2018-05-14 09:59:46 +02:00
cytopia
9d8167ca77 New container: PHP 7.3 2018-05-13 17:54:09 +02:00
76 changed files with 2527 additions and 145 deletions

View File

@@ -30,6 +30,7 @@ env:
- PHP=7.0
- PHP=7.1
- PHP=7.2
- PHP=7.3
###

View File

@@ -56,6 +56,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-5.3.ini /usr/local/etc/php/conf.d/yyy-devilbox-01-base.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf

View File

@@ -56,6 +56,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-5.4.ini /usr/local/etc/php/conf.d/yyy-devilbox-01-base.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf

View File

@@ -56,6 +56,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-5.5.ini /usr/local/etc/php/conf.d/yyy-devilbox-01-base.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf

View File

@@ -56,6 +56,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-5.6.ini /usr/local/etc/php/conf.d/yyy-devilbox-01-base.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf

View File

@@ -56,6 +56,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-7.0.ini /usr/local/etc/php/conf.d/yyy-devilbox-01-base.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf

View File

@@ -56,6 +56,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-7.1.ini /usr/local/etc/php/conf.d/yyy-devilbox-01-base.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf

View File

@@ -56,6 +56,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-7.2.ini /usr/local/etc/php/conf.d/yyy-devilbox-01-base.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf

View File

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

View File

@@ -0,0 +1,43 @@
; ############################################################
; # Devilbox PHP defaults for all Docker images
; ############################################################
; This php.ini is applied to the base container and inherited
; by every image built on top of it.
; Note that prod and work images overwrite specific settings
; for their use-case.
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 384M
upload_max_filesize = 256M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = Off
display_startup_errors = Off
track_errors = On
log_errors = On

View File

@@ -0,0 +1,44 @@
; ############################################################
; # Devilbox PHP defaults for all Docker images
; ############################################################
; This php.ini is applied to the base container and inherited
; by every image built on top of it.
; Note that prod and work images overwrite specific settings
; for their use-case.
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 384M
upload_max_filesize = 256M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = Off
display_startup_errors = Off
track_errors = On
log_errors = On

View File

@@ -0,0 +1,44 @@
; ############################################################
; # Devilbox PHP defaults for all Docker images
; ############################################################
; This php.ini is applied to the base container and inherited
; by every image built on top of it.
; Note that prod and work images overwrite specific settings
; for their use-case.
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 384M
upload_max_filesize = 256M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = Off
display_startup_errors = Off
track_errors = On
log_errors = On

View File

@@ -0,0 +1,44 @@
; ############################################################
; # Devilbox PHP defaults for all Docker images
; ############################################################
; This php.ini is applied to the base container and inherited
; by every image built on top of it.
; Note that prod and work images overwrite specific settings
; for their use-case.
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 384M
upload_max_filesize = 256M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = Off
display_startup_errors = Off
track_errors = On
log_errors = On

View File

@@ -0,0 +1,44 @@
; ############################################################
; # Devilbox PHP defaults for all Docker images
; ############################################################
; This php.ini is applied to the base container and inherited
; by every image built on top of it.
; Note that prod and work images overwrite specific settings
; for their use-case.
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 384M
upload_max_filesize = 256M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = Off
display_startup_errors = Off
track_errors = On
log_errors = On

View File

@@ -0,0 +1,44 @@
; ############################################################
; # Devilbox PHP defaults for all Docker images
; ############################################################
; This php.ini is applied to the base container and inherited
; by every image built on top of it.
; Note that prod and work images overwrite specific settings
; for their use-case.
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 384M
upload_max_filesize = 256M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = Off
display_startup_errors = Off
track_errors = On
log_errors = On

View File

@@ -0,0 +1,43 @@
; ############################################################
; # Devilbox PHP defaults for all Docker images
; ############################################################
; This php.ini is applied to the base container and inherited
; by every image built on top of it.
; Note that prod and work images overwrite specific settings
; for their use-case.
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 384M
upload_max_filesize = 256M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = Off
display_startup_errors = Off
log_errors = On

View File

@@ -0,0 +1,43 @@
; ############################################################
; # Devilbox PHP defaults for all Docker images
; ############################################################
; This php.ini is applied to the base container and inherited
; by every image built on top of it.
; Note that prod and work images overwrite specific settings
; for their use-case.
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 384M
upload_max_filesize = 256M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = Off
display_startup_errors = Off
log_errors = On

View File

@@ -116,6 +116,16 @@ RUN set -x \
${BUILD_DEPS} \
\
\
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube.tar.gz \
&& cd ioncube \
&& cp "ioncube_loader_lin_5.3.so" "${EXTENSION_DIR}/ioncube.so" \
&& cd ../ \
&& rm -rf ioncube \
&& rm -rf ioncube.tar.gz \
\
&& echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \
&& pecl install apcu-4.0.11 \

View File

@@ -116,6 +116,16 @@ RUN set -x \
${BUILD_DEPS} \
\
\
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube.tar.gz \
&& cd ioncube \
&& cp "ioncube_loader_lin_5.4.so" "${EXTENSION_DIR}/ioncube.so" \
&& cd ../ \
&& rm -rf ioncube \
&& rm -rf ioncube.tar.gz \
\
&& echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \
&& pecl install apcu-4.0.11 \

View File

@@ -118,6 +118,16 @@ RUN set -x \
${BUILD_DEPS} \
\
\
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube.tar.gz \
&& cd ioncube \
&& cp "ioncube_loader_lin_5.5.so" "${EXTENSION_DIR}/ioncube.so" \
&& cd ../ \
&& rm -rf ioncube \
&& rm -rf ioncube.tar.gz \
\
&& echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \
&& pecl install apcu-4.0.11 \

View File

@@ -30,6 +30,7 @@ ENV BUILD_DEPS \
libvpx-dev \
zlib1g-dev \
libfreetype6-dev \
libwebp-dev \
libgmp-dev \
libmagickwand-dev \
libc-client-dev \
@@ -57,7 +58,6 @@ ENV BUILD_DEPS \
libpq-dev \
libsqlite3-dev \
libpq-dev \
libssl-dev \
libpspell-dev \
libedit-dev \
libreadline-dev \
@@ -83,20 +83,21 @@ ENV BUILD_DEPS \
git
ENV RUN_DEPS \
librabbitmq1 \
librabbitmq4 \
libenchant1c2a \
libpng12-0 \
libpng16-16 \
libjpeg62-turbo \
libxpm4 \
libvpx1 \
libvpx4 \
libfreetype6 \
libmagickwand-6.q16-2 \
libwebp6 \
libmagickwand-6.q16-3 \
libc-client2007e \
libfbclient2 \
libicu52 \
libicu57 \
libmcrypt4 \
libmemcachedutil2 \
libmysqlclient18 \
libmariadbclient18 \
libsybdb5 \
libfbclient2 \
libpq5 \
@@ -104,10 +105,10 @@ ENV RUN_DEPS \
libaspell15 \
librecode0 \
snmp \
libnghttp2-5 \
libtidy-0.99-0 \
libnghttp2-14 \
libtidy5 \
libxslt1.1 \
libzip2 \
libzip4 \
ca-certificates
@@ -120,6 +121,16 @@ RUN set -x \
${BUILD_DEPS} \
\
\
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube.tar.gz \
&& cd ioncube \
&& cp "ioncube_loader_lin_5.6.so" "${EXTENSION_DIR}/ioncube.so" \
&& cd ../ \
&& rm -rf ioncube \
&& rm -rf ioncube.tar.gz \
\
&& echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \
&& pecl install apcu-4.0.11 \
@@ -189,7 +200,6 @@ RUN set -x \
&& cd build && ./install \
&& docker-php-ext-enable phalcon \
&& cd / && rm -rf /tmp/phalcon \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) phar \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) posix \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) readline \
@@ -341,8 +351,6 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^pgsql$' \
&& php -m | grep -oiE '^phalcon$' \
&& php-fpm -m | grep -oiE '^phalcon$' \
&& php -m | grep -oiE '^phar$' \
&& php-fpm -m | grep -oiE '^phar$' \
&& php -m | grep -oiE '^posix$' \
&& php-fpm -m | grep -oiE '^posix$' \
&& php -m | grep -oiE '^pspell$' \

View File

@@ -81,18 +81,18 @@ ENV BUILD_DEPS \
git
ENV RUN_DEPS \
librabbitmq1 \
librabbitmq4 \
libenchant1c2a \
libpng12-0 \
libpng16-16 \
libjpeg62-turbo \
libxpm4 \
libvpx1 \
libvpx4 \
libfreetype6 \
libwebp-dev \
libmagickwand-6.q16-2 \
libwebp6 \
libmagickwand-6.q16-3 \
libc-client2007e \
libfbclient2 \
libicu52 \
libicu57 \
libmcrypt4 \
libmemcachedutil2 \
libsybdb5 \
@@ -102,10 +102,10 @@ ENV RUN_DEPS \
libaspell15 \
librecode0 \
snmp \
libnghttp2-5 \
libtidy-0.99-0 \
libnghttp2-14 \
libtidy5 \
libxslt1.1 \
libzip2 \
libzip4 \
ca-certificates
@@ -118,6 +118,16 @@ RUN set -x \
${BUILD_DEPS} \
\
\
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube.tar.gz \
&& cd ioncube \
&& cp "ioncube_loader_lin_7.0.so" "${EXTENSION_DIR}/ioncube.so" \
&& cd ../ \
&& rm -rf ioncube \
&& rm -rf ioncube.tar.gz \
\
&& echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \
&& pecl install apcu \
@@ -205,7 +215,7 @@ RUN set -x \
&& /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
&& pecl install swoole \
&& pecl install swoole-2.2.0 \
&& docker-php-ext-enable swoole \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \

View File

@@ -81,18 +81,18 @@ ENV BUILD_DEPS \
git
ENV RUN_DEPS \
librabbitmq1 \
librabbitmq4 \
libenchant1c2a \
libpng12-0 \
libpng16-16 \
libjpeg62-turbo \
libxpm4 \
libvpx1 \
libvpx4 \
libfreetype6 \
libwebp-dev \
libmagickwand-6.q16-2 \
libwebp6 \
libmagickwand-6.q16-3 \
libc-client2007e \
libfbclient2 \
libicu52 \
libicu57 \
libmcrypt4 \
libmemcachedutil2 \
libsybdb5 \
@@ -102,10 +102,10 @@ ENV RUN_DEPS \
libaspell15 \
librecode0 \
snmp \
libnghttp2-5 \
libtidy-0.99-0 \
libnghttp2-14 \
libtidy5 \
libxslt1.1 \
libzip2 \
libzip4 \
ca-certificates
@@ -118,6 +118,16 @@ RUN set -x \
${BUILD_DEPS} \
\
\
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube.tar.gz \
&& cd ioncube \
&& cp "ioncube_loader_lin_7.1.so" "${EXTENSION_DIR}/ioncube.so" \
&& cd ../ \
&& rm -rf ioncube \
&& rm -rf ioncube.tar.gz \
\
&& echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \
&& pecl install apcu \

View File

@@ -119,7 +119,17 @@ RUN set -x \
${BUILD_DEPS} \
\
\
&& pecl install amqp \
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube.tar.gz \
&& cd ioncube \
&& cp "ioncube_loader_lin_7.2.so" "${EXTENSION_DIR}/ioncube.so" \
&& cd ../ \
&& rm -rf ioncube \
&& rm -rf ioncube.tar.gz \
\
&& echo "/usr" | pecl install amqp \
&& docker-php-ext-enable amqp \
&& pecl install apcu \
&& docker-php-ext-enable apcu \
@@ -236,6 +246,7 @@ RUN set -x \
&& /usr/local/bin/docker-php-ext-configure xmlwriter --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlwriter \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
\
\

View File

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

View File

@@ -48,6 +48,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-5.3.ini /usr/local/etc/php/conf.d/yyy-devilbox-03-prod.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh

View File

@@ -48,6 +48,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-5.4.ini /usr/local/etc/php/conf.d/yyy-devilbox-03-prod.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh

View File

@@ -48,6 +48,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-5.5.ini /usr/local/etc/php/conf.d/yyy-devilbox-03-prod.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh

View File

@@ -48,6 +48,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-5.6.ini /usr/local/etc/php/conf.d/yyy-devilbox-03-prod.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh

View File

@@ -48,6 +48,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-7.0.ini /usr/local/etc/php/conf.d/yyy-devilbox-03-prod.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh

View File

@@ -48,6 +48,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-7.1.ini /usr/local/etc/php/conf.d/yyy-devilbox-03-prod.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh

View File

@@ -48,6 +48,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-7.2.ini /usr/local/etc/php/conf.d/yyy-devilbox-03-prod.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh

View File

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

View File

@@ -0,0 +1,51 @@
#!/usr/bin/env bash
set -e
set -u
set -o pipefail
############################################################
# Functions
############################################################
###
### Enable PHP Modules
###
enable_modules() {
local mod_varname="${1}"
local debug="${2}"
local cfg_path="/usr/local/etc/php/conf.d"
local mod_path=
mod_path="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )"
if ! env_set "${mod_varname}"; then
log "info" "\$${mod_varname} not set. Not enabling any PHP modules." "${debug}"
else
mods="$( env_get "${mod_varname}" )"
if [ -z "${mods}" ]; then
log "info" "\$${mod_varname} set, but empty. Not enabling any PHP modules." "${debug}"
else
log "info" "Enabling the following PHP modules: ${mods}" "${debug}"
fi
while read -r mod; do
mod="$( echo "${mod}" | xargs )" # trim
# Does the module exist?
if [ -f "${mod_path}/${mod}.so" ]; then
# Exceptions to load speficially
if [ "${mod}" = "ioncube" ]; then
run "echo 'zend_extension=${mod_path}/ioncube.so' > '${cfg_path}/docker-ext-php-ext-ioncube.ini'" "${debug}"
# Generic Load
else
run "docker-php-ext-enable ${mod} || true" "${debug}"
fi
else
log "warn" "Enabling PHP Module: '${mod}' does not exist" "${debug}"
fi
done <<< "$( echo "${mods}" | tr ',' '\n' )"
fi
}

View File

@@ -0,0 +1,47 @@
#!/usr/bin/env bash
set -e
set -u
set -o pipefail
############################################################
# Functions
############################################################
###
### Disable PHP Modules
###
disable_modules() {
local mod_varname="${1}"
local debug="${2}"
local cfg_path="/usr/local/etc/php/conf.d"
if ! env_set "${mod_varname}"; then
log "info" "\$${mod_varname} not set. Not disabling any PHP modules." "${debug}"
else
mods="$( env_get "${mod_varname}" )"
if [ -z "${mods}" ]; then
log "info" "\$${mod_varname} set, but empty. Not disabling any PHP modules." "${debug}"
else
log "info" "Disabling the following PHP modules: ${mods}" "${debug}"
fi
while read -r mod; do
mod="$( echo "${mod}" | xargs )" # trim
# Find all config files that enable that module
files="$( grep -Er "^(zend_)?extension.*(=|/)${mod}\.so" "${cfg_path}" || true )"
if [ -n "${files}" ]; then
while read -r f; do
# Get filename
f="$( echo "${f}" | awk -F':' '{ print $1 }' )"
# Remove file
run "rm ${f}" "${debug}"
done <<< "${files}"
fi
done <<< "$( echo "${mods}" | tr ',' '\n' )"
fi
}

View File

@@ -160,6 +160,18 @@ copy_ini_files "${PHP_CUST_INI_DIR}" "${PHP_INI_DIR}" "${DEBUG_LEVEL}"
copy_fpm_files "${PHP_CUST_FPM_DIR}" "${PHP_FPM_DIR}" "${DEBUG_LEVEL}"
###
### Enable PHP Modules
###
enable_modules "ENABLE_MODULES" "${DEBUG_LEVEL}"
###
### Disable PHP Modules
###
disable_modules "DISABLE_MODULES" "${DEBUG_LEVEL}"
###
### Startup
###

View File

@@ -0,0 +1,9 @@
; ############################################################
; # Devilbox PHP defaults for all production Docker images
; ############################################################
; This php.ini is applied to the prod container and inherited
; by every image built on top of it.
[PHP]

View File

@@ -0,0 +1,9 @@
; ############################################################
; # Devilbox PHP defaults for all production Docker images
; ############################################################
; This php.ini is applied to the prod container and inherited
; by every image built on top of it.
[PHP]

View File

@@ -0,0 +1,9 @@
; ############################################################
; # Devilbox PHP defaults for all production Docker images
; ############################################################
; This php.ini is applied to the prod container and inherited
; by every image built on top of it.
[PHP]

View File

@@ -0,0 +1,9 @@
; ############################################################
; # Devilbox PHP defaults for all production Docker images
; ############################################################
; This php.ini is applied to the prod container and inherited
; by every image built on top of it.
[PHP]

View File

@@ -0,0 +1,9 @@
; ############################################################
; # Devilbox PHP defaults for all production Docker images
; ############################################################
; This php.ini is applied to the prod container and inherited
; by every image built on top of it.
[PHP]

View File

@@ -0,0 +1,9 @@
; ############################################################
; # Devilbox PHP defaults for all production Docker images
; ############################################################
; This php.ini is applied to the prod container and inherited
; by every image built on top of it.
[PHP]

View File

@@ -0,0 +1,9 @@
; ############################################################
; # Devilbox PHP defaults for all production Docker images
; ############################################################
; This php.ini is applied to the prod container and inherited
; by every image built on top of it.
[PHP]

View File

@@ -0,0 +1,9 @@
; ############################################################
; # Devilbox PHP defaults for all production Docker images
; ############################################################
; This php.ini is applied to the prod container and inherited
; by every image built on top of it.
[PHP]

View File

@@ -46,6 +46,7 @@ RUN set -x \
autoconf \
automake \
bash-completion \
build-essential \
bzip2 \
coreutils \
curl \
@@ -62,6 +63,8 @@ RUN set -x \
iputils-ping \
less \
libc-dev \
libffi-dev\
libssl-dev\
make \
mongodb-org-shell \
mongodb-org-tools \
@@ -72,8 +75,12 @@ RUN set -x \
netcat \
nodejs \
openssh-client \
patch \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rubygems \
ruby-dev \
@@ -95,6 +102,10 @@ RUN set -x \
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& pip install --upgrade setuptools \
&& pip install ansible \
\
# awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
&& cd /usr/local/src/awesome-ci \
@@ -112,6 +123,10 @@ RUN set -x \
&& npm install -g mdlint \
&& npm install -g gulp \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\
# drush
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \
&& cd /usr/local/src/drush \
@@ -134,18 +149,27 @@ RUN set -x \
\
# grunt
&& npm install -g grunt grunt-cli \
# linkcheck
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \
\
# linuxbrew
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmai \
\
# mysqldumpsecure
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
&& cd /usr/local/src/mysqldump-secure \
@@ -187,6 +211,10 @@ RUN set -x \
&& curl -qL https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
&& chmod +x /usr/local/bin/phpcbf \
\
# phpunit
&& curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
\
# sass
&& gem install sass \
# webpack
@@ -253,6 +281,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
@@ -260,14 +289,17 @@ RUN set -x \
&& mdlint --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
\
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& drush --version | grep -E '[.0-9]+' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phalcon commands | grep -E '[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
&& phpcbf --version | grep -E 'version [.0-9]+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
&& wp --allow-root --version | grep -E '[.0-9]+' \
@@ -278,7 +310,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/error-reporting.ini /usr/local/etc/php/conf.d/devilbox-error-reporting.ini
COPY ./data/php.d/php-5.3.ini /usr/local/etc/php/conf.d/yyy-devilbox-04-work.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -46,6 +46,7 @@ RUN set -x \
autoconf \
automake \
bash-completion \
build-essential \
bzip2 \
coreutils \
curl \
@@ -62,6 +63,8 @@ RUN set -x \
iputils-ping \
less \
libc-dev \
libffi-dev\
libssl-dev\
make \
mongodb-org-shell \
mongodb-org-tools \
@@ -72,8 +75,12 @@ RUN set -x \
netcat \
nodejs \
openssh-client \
patch \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rubygems \
ruby-dev \
@@ -95,6 +102,10 @@ RUN set -x \
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& pip install --upgrade setuptools \
&& pip install ansible \
\
# awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
&& cd /usr/local/src/awesome-ci \
@@ -112,6 +123,10 @@ RUN set -x \
&& npm install -g mdlint \
&& npm install -g gulp \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\
# drush
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \
&& cd /usr/local/src/drush \
@@ -144,18 +159,27 @@ RUN set -x \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
\
# linkcheck
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \
\
# linuxbrew
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmai \
\
# mysqldumpsecure
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
&& cd /usr/local/src/mysqldump-secure \
@@ -197,6 +221,10 @@ RUN set -x \
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
&& chmod +x /usr/local/bin/phpcbf \
\
# phpunit
&& curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
\
# sass
&& gem install sass \
# symfony
@@ -266,6 +294,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
@@ -273,15 +302,18 @@ RUN set -x \
&& mdlint --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
\
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& drush --version | grep -E '[.0-9]+' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phalcon commands | grep -E '[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
&& phpcbf --version | grep -E 'version [.0-9]+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
@@ -293,7 +325,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/error-reporting.ini /usr/local/etc/php/conf.d/devilbox-error-reporting.ini
COPY ./data/php.d/php-5.4.ini /usr/local/etc/php/conf.d/yyy-devilbox-04-work.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -46,6 +46,7 @@ RUN set -x \
autoconf \
automake \
bash-completion \
build-essential \
bzip2 \
coreutils \
curl \
@@ -62,6 +63,8 @@ RUN set -x \
iputils-ping \
less \
libc-dev \
libffi-dev\
libssl-dev\
make \
mongodb-org-shell \
mongodb-org-tools \
@@ -72,8 +75,12 @@ RUN set -x \
netcat \
nodejs \
openssh-client \
patch \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rubygems \
ruby-dev \
@@ -95,6 +102,10 @@ RUN set -x \
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& pip install --upgrade setuptools \
&& pip install ansible \
\
# awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
&& cd /usr/local/src/awesome-ci \
@@ -112,6 +123,10 @@ RUN set -x \
&& npm install -g mdlint \
&& npm install -g gulp \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\
# drush
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \
&& cd /usr/local/src/drush \
@@ -147,18 +162,27 @@ RUN set -x \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
\
# linkcheck
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \
\
# linuxbrew
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmai \
\
# mysqldumpsecure
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
&& cd /usr/local/src/mysqldump-secure \
@@ -200,6 +224,14 @@ RUN set -x \
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
&& chmod +x /usr/local/bin/phpcbf \
\
# phpunit
&& curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
\
# photon
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
\
# sass
&& gem install sass \
# symfony
@@ -269,6 +301,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
@@ -276,16 +309,20 @@ RUN set -x \
&& mdlint --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
\
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& drush --version | grep -E '[.0-9]+' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phalcon commands | grep -E '[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
&& phpcbf --version | grep -E 'version [.0-9]+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& photon --version | grep -E 'Installer [.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
@@ -297,7 +334,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/error-reporting.ini /usr/local/etc/php/conf.d/devilbox-error-reporting.ini
COPY ./data/php.d/php-5.5.ini /usr/local/etc/php/conf.d/yyy-devilbox-04-work.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -46,6 +46,7 @@ RUN set -x \
autoconf \
automake \
bash-completion \
build-essential \
bzip2 \
coreutils \
curl \
@@ -62,6 +63,8 @@ RUN set -x \
iputils-ping \
less \
libc-dev \
libffi-dev\
libssl-dev\
make \
mongodb-org-shell \
mongodb-org-tools \
@@ -72,8 +75,12 @@ RUN set -x \
netcat \
nodejs \
openssh-client \
patch \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rubygems \
ruby-dev \
@@ -95,6 +102,10 @@ RUN set -x \
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& pip install --upgrade setuptools \
&& pip install ansible \
\
# awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
&& cd /usr/local/src/awesome-ci \
@@ -112,6 +123,10 @@ RUN set -x \
&& npm install -g mdlint \
&& npm install -g gulp \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\
# drush
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \
&& cd /usr/local/src/drush \
@@ -147,18 +162,27 @@ RUN set -x \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
\
# linkcheck
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \
\
# linuxbrew
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmai \
\
# mysqldumpsecure
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
&& cd /usr/local/src/mysqldump-secure \
@@ -200,6 +224,14 @@ RUN set -x \
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
&& chmod +x /usr/local/bin/phpcbf \
\
# phpunit
&& curl -qL https://phar.phpunit.de/phpunit-5.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
\
# photon
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
\
# sass
&& gem install sass \
# symfony
@@ -269,6 +301,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
@@ -276,16 +309,20 @@ RUN set -x \
&& mdlint --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
\
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& drush --version | grep -E '[.0-9]+' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phalcon commands | grep -E '[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
&& phpcbf --version | grep -E 'version [.0-9]+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& photon --version | grep -E 'Installer [.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
@@ -297,7 +334,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/error-reporting.ini /usr/local/etc/php/conf.d/devilbox-error-reporting.ini
COPY ./data/php.d/php-5.6.ini /usr/local/etc/php/conf.d/yyy-devilbox-04-work.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -46,6 +46,7 @@ RUN set -x \
autoconf \
automake \
bash-completion \
build-essential \
bzip2 \
coreutils \
curl \
@@ -62,6 +63,8 @@ RUN set -x \
iputils-ping \
less \
libc-dev \
libffi-dev\
libssl-dev\
make \
mongodb-org-shell \
mongodb-org-tools \
@@ -72,8 +75,12 @@ RUN set -x \
netcat \
nodejs \
openssh-client \
patch \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rubygems \
ruby-dev \
@@ -95,6 +102,10 @@ RUN set -x \
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& pip install --upgrade setuptools \
&& pip install ansible \
\
# awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
&& cd /usr/local/src/awesome-ci \
@@ -112,6 +123,10 @@ RUN set -x \
&& npm install -g mdlint \
&& npm install -g gulp \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\
# drush
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \
&& cd /usr/local/src/drush \
@@ -147,18 +162,27 @@ RUN set -x \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
\
# linkcheck
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \
\
# linuxbrew
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmai \
\
# mysqldumpsecure
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
&& cd /usr/local/src/mysqldump-secure \
@@ -200,6 +224,14 @@ RUN set -x \
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
&& chmod +x /usr/local/bin/phpcbf \
\
# phpunit
&& curl -qL https://phar.phpunit.de/phpunit-6.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
\
# photon
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
\
# sass
&& gem install sass \
# symfony
@@ -269,6 +301,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
@@ -276,16 +309,20 @@ RUN set -x \
&& mdlint --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
\
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& drush --version | grep -E '[.0-9]+' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phalcon commands | grep -E '[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
&& phpcbf --version | grep -E 'version [.0-9]+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& photon --version | grep -E 'Installer [.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
@@ -297,7 +334,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/error-reporting.ini /usr/local/etc/php/conf.d/devilbox-error-reporting.ini
COPY ./data/php.d/php-7.0.ini /usr/local/etc/php/conf.d/yyy-devilbox-04-work.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -46,6 +46,7 @@ RUN set -x \
autoconf \
automake \
bash-completion \
build-essential \
bzip2 \
coreutils \
curl \
@@ -62,6 +63,8 @@ RUN set -x \
iputils-ping \
less \
libc-dev \
libffi-dev\
libssl-dev\
make \
mongodb-org-shell \
mongodb-org-tools \
@@ -72,8 +75,12 @@ RUN set -x \
netcat \
nodejs \
openssh-client \
patch \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rubygems \
ruby-dev \
@@ -95,6 +102,10 @@ RUN set -x \
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& pip install --upgrade setuptools \
&& pip install ansible \
\
# awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
&& cd /usr/local/src/awesome-ci \
@@ -112,6 +123,10 @@ RUN set -x \
&& npm install -g mdlint \
&& npm install -g gulp \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\
# drush
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \
&& cd /usr/local/src/drush \
@@ -147,18 +162,27 @@ RUN set -x \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
\
# linkcheck
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \
\
# linuxbrew
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmai \
\
# mysqldumpsecure
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
&& cd /usr/local/src/mysqldump-secure \
@@ -200,6 +224,14 @@ RUN set -x \
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
&& chmod +x /usr/local/bin/phpcbf \
\
# phpunit
&& curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
\
# photon
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
\
# sass
&& gem install sass \
# symfony
@@ -269,6 +301,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
@@ -276,16 +309,20 @@ RUN set -x \
&& mdlint --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
\
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& drush --version | grep -E '[.0-9]+' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phalcon commands | grep -E '[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
&& phpcbf --version | grep -E 'version [.0-9]+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& photon --version | grep -E 'Installer [.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
@@ -297,7 +334,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/error-reporting.ini /usr/local/etc/php/conf.d/devilbox-error-reporting.ini
COPY ./data/php.d/php-7.1.ini /usr/local/etc/php/conf.d/yyy-devilbox-04-work.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -46,6 +46,7 @@ RUN set -x \
autoconf \
automake \
bash-completion \
build-essential \
bzip2 \
coreutils \
curl \
@@ -62,6 +63,8 @@ RUN set -x \
iputils-ping \
less \
libc-dev \
libffi-dev\
libssl-dev\
make \
mongodb-org-shell \
mongodb-org-tools \
@@ -72,8 +75,12 @@ RUN set -x \
netcat \
nodejs \
openssh-client \
patch \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rubygems \
ruby-dev \
@@ -95,6 +102,10 @@ RUN set -x \
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& pip install --upgrade setuptools \
&& pip install ansible \
\
# awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
&& cd /usr/local/src/awesome-ci \
@@ -112,6 +123,10 @@ RUN set -x \
&& npm install -g mdlint \
&& npm install -g gulp \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\
# drush
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \
&& cd /usr/local/src/drush \
@@ -147,18 +162,27 @@ RUN set -x \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
\
# linkcheck
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \
\
# linuxbrew
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmai \
\
# mysqldumpsecure
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
&& cd /usr/local/src/mysqldump-secure \
@@ -200,6 +224,14 @@ RUN set -x \
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
&& chmod +x /usr/local/bin/phpcbf \
\
# phpunit
&& curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
\
# photon
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
\
# sass
&& gem install sass \
# symfony
@@ -269,6 +301,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
@@ -276,16 +309,20 @@ RUN set -x \
&& mdlint --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
\
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& drush --version | grep -E '[.0-9]+' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phalcon commands | grep -E '[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
&& phpcbf --version | grep -E 'version [.0-9]+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& photon --version | grep -E 'Installer [.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
@@ -297,7 +334,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/error-reporting.ini /usr/local/etc/php/conf.d/devilbox-error-reporting.ini
COPY ./data/php.d/php-7.2.ini /usr/local/etc/php/conf.d/yyy-devilbox-04-work.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -0,0 +1,359 @@
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
FROM devilbox/php-fpm:7.3-prod
MAINTAINER "cytopia" <cytopia@everythingcli.org>
###
### Labels
###
LABEL \
name="cytopia's PHP-FPM 7.3 Image" \
image="devilbox/php-fpm" \
tag="7.3-work" \
vendor="devilbox" \
license="MIT"
###
### Envs
###
ENV BASH_PROFILE=".bashrc"
###
### Install Tools
###
RUN set -x \
&& apt-get update \
&& apt-get install --no-install-recommends --no-install-suggests -y \
dirmngr \
gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -q "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | apt-key add - \
&& echo "deb http://deb.nodesource.com/node_8.x stretch main" > /etc/apt/sources.list.d/node.list \
&& curl -q https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& apt-get update \
&& apt-get install --no-install-recommends --no-install-suggests -y \
ack-grep \
aspell \
autoconf \
automake \
bash-completion \
build-essential \
bzip2 \
coreutils \
curl \
dnsutils \
dos2unix \
file \
gcc \
git \
git-flow \
git-svn \
hostname \
htop \
imagemagick \
iputils-ping \
less \
libc-dev \
libffi-dev\
libssl-dev\
make \
mongodb-org-shell \
mongodb-org-tools \
moreutils \
mysql-client \
nano \
net-tools \
netcat \
nodejs \
openssh-client \
patch \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rubygems \
ruby-dev \
shellcheck \
silversearcher-ag \
subversion \
sudo \
tig \
vim \
w3m \
wget \
whois \
xz-utils \
yarn \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \
&& rm -rf /var/lib/apt/lists/*
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& pip install --upgrade setuptools \
&& pip install ansible \
\
# awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
&& cd /usr/local/src/awesome-ci \
&& git checkout $(git describe --abbrev=0 --tags) \
&& ./configure --prefix=/usr/local \
&& make install \
&& cd / \
&& rm -rf /usr/local/src/awesome-ci \
\
&& gem install mixlib-config -v 2.2.4 \
&& gem install mdl \
&& gem install scss_lint \
&& npm install -g eslint \
&& npm install -g jsonlint \
&& npm install -g mdlint \
&& npm install -g gulp \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception --dev \
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
\
# drush
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \
&& cd /usr/local/src/drush \
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \
&& ln -s /usr/local/src/drush/drush /usr/local/bin/drush \
&& rm -rf /usr/local/src/drush/.git \
&& rm -rf /usr/local/src/drush/docs \
&& rm -rf /usr/local/src/drush/examples \
&& rm -rf /usr/local/src/drush/misc \
&& rm -rf /usr/local/src/drush/tests \
\
# drupalconsole
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
&& chmod +x /usr/local/bin/drupal \
# gitflow
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
&& cd /tmp/gitflow \
&& make install \
&& cd / && rm -rf /tmp/gitflow \
\
# grunt
&& npm install -g grunt grunt-cli \
# laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \
&& git checkout $(git describe --abbrev=0 --tags) \
\
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install' \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
\
# linkcheck
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \
\
# linuxbrew
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmai \
\
# mysqldumpsecure
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
&& cd /usr/local/src/mysqldump-secure \
&& git checkout $(git describe --abbrev=0 --tags) \
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
&& touch /var/log/mysqldump-secure.log \
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
&& chmod 0400 /etc/mysqldump-secure.conf \
&& chmod 0400 /etc/mysqldump-secure.cnf \
&& chmod 0644 /var/log/mysqldump-secure.log \
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
&& cd / \
&& rm -rf /usr/local/src/mysqldump-secure \
\
# phpcs
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
&& chmod +x /usr/local/bin/phpcs \
\
# phpcbf
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
&& chmod +x /usr/local/bin/phpcbf \
\
# phpunit
&& curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
\
# photon
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
\
# sass
&& gem install sass \
# symfony
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \
# webpack
&& npm install -g webpack webpack-cli \
# wpcli
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
&& chmod +x /usr/local/bin/wp \
# yamllint
&& apt update && apt install --no-install-recommends --no-install-suggests -y libpython-dev python-setuptools libyaml-dev \
&& pip install yamllint \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps libpython-dev python-setuptools libyaml-dev && rm -rf /var/lib/apt/lists/* \
# cleanup
&& rm -rf /home/${MY_USER}/.*json \
&& rm -rf /home/${MY_USER}/.cache \
&& rm -rf /home/${MY_USER}/.composer \
&& rm -rf /home/${MY_USER}/.config \
&& rm -rf /home/${MY_USER}/.drush \
&& rm -rf /home/${MY_USER}/.gem \
&& rm -rf /home/${MY_USER}/.npm \
&& rm -rf /home/${MY_USER}/.subversion \
\
&& rm -rf /root/.*json \
&& rm -rf /root/.cache \
&& rm -rf /root/.composer \
&& rm -rf /root/.config \
&& rm -rf /root/.drush \
&& rm -rf /root/.gem \
&& rm -rf /root/.npm \
&& rm -rf /root/.subversion \
\
&& rm -rf /tmp/* \
\
&& true
###
### Configure Bash
###
RUN \
{ \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
echo "export PATH"; \
echo ". /etc/bash-devilbox"; \
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
echo " if [ -r \"\${f}\" ]; then"; \
echo " . \"\${f}\""; \
echo " fi"; \
echo " done"; \
echo " unset f"; \
echo "fi"; \
} | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE}
###
### Verify
###
RUN set -x \
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
&& /usr/local/sbin/php-fpm --test \
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
&& jsonlint --version | grep -E '[.0-9]+' \
&& mdlint --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
\
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& drush --version | grep -E '[.0-9]+' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
&& phpcbf --version | grep -E 'version [.0-9]+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& photon --version | grep -E 'Installer [.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
&& wp --allow-root --version | grep -E '[.0-9]+' \
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
&& true
###
### Copy files
###
COPY ./data/php.d/php-7.3.ini /usr/local/etc/php/conf.d/yyy-devilbox-04-work.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
###
### Volumes
###
VOLUME /etc/bashrc-devilbox.d
VOLUME /etc/php-custom.d
VOLUME /etc/php-fpm-custom.d
VOLUME /etc/php-modules.d
VOLUME /shared/backups
VOLUME /var/log/php
VOLUME /var/mail
###
### Ports
###
EXPOSE 9000
###
### Where to start inside the container
###
WORKDIR /shared/httpd
###
### Entrypoint
###
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,26 @@
#!/usr/bin/env bash
set -e
set -u
set -o pipefail
############################################################
# Functions
############################################################
###
### Include certificates/CAs into own system
###
update_ca_certificates() {
local dir="${1}"
local debug="${2}"
if [ -d "${dir}" ]; then
for cert in $( find "${dir}" -name \*.crt ); do
name="$( basename "${cert}" )"
run "cp ${cert} /usr/local/share/ca-certificates/devilbox-${name}" "${debug}"
done
fi
run "update-ca-certificates" "${debug}"
}

View File

@@ -160,6 +160,18 @@ copy_ini_files "${PHP_CUST_INI_DIR}" "${PHP_INI_DIR}" "${DEBUG_LEVEL}"
copy_fpm_files "${PHP_CUST_FPM_DIR}" "${PHP_FPM_DIR}" "${DEBUG_LEVEL}"
###
### Enable PHP Modules
###
enable_modules "ENABLE_MODULES" "${DEBUG_LEVEL}"
###
### Disable PHP Modules
###
disable_modules "DISABLE_MODULES" "${DEBUG_LEVEL}"
###
### mysqldump-secure
###
@@ -182,6 +194,12 @@ run "chmod 0755 /shared/backups" "${DEBUG_LEVEL}"
run "chmod 0755 /shared/httpd" "${DEBUG_LEVEL}"
###
### Update ca-certificates
###
update_ca_certificates "/ca" "${DEBUG_LEVEL}"
###
### Startup
###

View File

@@ -1,12 +0,0 @@
; PHP Development configuration for errors
; Show all errors
display_errors = On
display_startup_errors = On
; Log all errors
log_errors = On
; What errors to show/log
error_reporting = E_ALL | E_STRICT
xmlrpc_errors = On

View File

@@ -0,0 +1,17 @@
; ############################################################
; # Devilbox PHP defaults for all development Docker images
; ############################################################
; This php.ini is applied to the work container.
[PHP]
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
display_errors = On
display_startup_errors = On
track_errors = On
log_errors = On
html_errors = On

View File

@@ -0,0 +1,17 @@
; ############################################################
; # Devilbox PHP defaults for all development Docker images
; ############################################################
; This php.ini is applied to the work container.
[PHP]
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
display_errors = On
display_startup_errors = On
track_errors = On
log_errors = On
html_errors = On

View File

@@ -0,0 +1,17 @@
; ############################################################
; # Devilbox PHP defaults for all development Docker images
; ############################################################
; This php.ini is applied to the work container.
[PHP]
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
display_errors = On
display_startup_errors = On
track_errors = On
log_errors = On
html_errors = On

View File

@@ -0,0 +1,17 @@
; ############################################################
; # Devilbox PHP defaults for all development Docker images
; ############################################################
; This php.ini is applied to the work container.
[PHP]
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
display_errors = On
display_startup_errors = On
track_errors = On
log_errors = On
html_errors = On

View File

@@ -0,0 +1,17 @@
; ############################################################
; # Devilbox PHP defaults for all development Docker images
; ############################################################
; This php.ini is applied to the work container.
[PHP]
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
display_errors = On
display_startup_errors = On
track_errors = On
log_errors = On
html_errors = On

View File

@@ -0,0 +1,17 @@
; ############################################################
; # Devilbox PHP defaults for all development Docker images
; ############################################################
; This php.ini is applied to the work container.
[PHP]
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
display_errors = On
display_startup_errors = On
track_errors = On
log_errors = On
html_errors = On

View File

@@ -0,0 +1,16 @@
; ############################################################
; # Devilbox PHP defaults for all development Docker images
; ############################################################
; This php.ini is applied to the work container.
[PHP]
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
display_errors = On
display_startup_errors = On
log_errors = On
html_errors = On

View File

@@ -0,0 +1,16 @@
; ############################################################
; # Devilbox PHP defaults for all development Docker images
; ############################################################
; This php.ini is applied to the work container.
[PHP]
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
display_errors = On
display_startup_errors = On
log_errors = On
html_errors = On

View File

@@ -34,6 +34,7 @@ help:
@printf "%s\n" "make build-base-70: Build PHP 7.0 base image"
@printf "%s\n" "make build-base-71: Build PHP 7.1 base image"
@printf "%s\n" "make build-base-72: Build PHP 7.2 base image"
@printf "%s\n" "make build-base-73: Build PHP 7.3 base image"
@printf "\n"
@printf "%s\n" "make build-mods-53: Build PHP 5.3 mods image"
@printf "%s\n" "make build-mods-54: Build PHP 5.4 mods image"
@@ -42,6 +43,7 @@ help:
@printf "%s\n" "make build-mods-70: Build PHP 7.0 mods image"
@printf "%s\n" "make build-mods-71: Build PHP 7.1 mods image"
@printf "%s\n" "make build-mods-72: Build PHP 7.2 mods image"
@printf "%s\n" "make build-mods-73: Build PHP 7.3 mods image"
@printf "\n"
@printf "%s\n" "make build-prod-53: Build PHP 5.3 prod image"
@printf "%s\n" "make build-prod-54: Build PHP 5.4 prod image"
@@ -50,6 +52,7 @@ help:
@printf "%s\n" "make build-prod-70: Build PHP 7.0 prod image"
@printf "%s\n" "make build-prod-71: Build PHP 7.1 prod image"
@printf "%s\n" "make build-prod-72: Build PHP 7.2 prod image"
@printf "%s\n" "make build-prod-73: Build PHP 7.3 prod image"
@printf "\n"
@printf "%s\n" "make build-work-54: Build PHP 5.3 work image"
@printf "%s\n" "make build-work-54: Build PHP 5.4 work image"
@@ -58,6 +61,7 @@ help:
@printf "%s\n" "make build-work-70: Build PHP 7.0 work image"
@printf "%s\n" "make build-work-71: Build PHP 7.1 work image"
@printf "%s\n" "make build-work-72: Build PHP 7.2 work image"
@printf "%s\n" "make build-work-73: Build PHP 7.3 work image"
@printf "\n"
@printf "%s\n" "make rebuild-base-53: Build PHP 5.3 base image"
@printf "%s\n" "make rebuild-base-54: Build PHP 5.4 base image"
@@ -66,6 +70,7 @@ help:
@printf "%s\n" "make rebuild-base-70: Build PHP 7.0 base image"
@printf "%s\n" "make rebuild-base-71: Build PHP 7.1 base image"
@printf "%s\n" "make rebuild-base-72: Build PHP 7.2 base image"
@printf "%s\n" "make rebuild-base-73: Build PHP 7.3 base image"
@printf "\n"
@printf "%s\n" "make rebuild-mods-53: Build PHP 5.3 mods image"
@printf "%s\n" "make rebuild-mods-54: Build PHP 5.4 mods image"
@@ -74,6 +79,7 @@ help:
@printf "%s\n" "make rebuild-mods-70: Build PHP 7.0 mods image"
@printf "%s\n" "make rebuild-mods-71: Build PHP 7.1 mods image"
@printf "%s\n" "make rebuild-mods-72: Build PHP 7.2 mods image"
@printf "%s\n" "make rebuild-mods-73: Build PHP 7.3 mods image"
@printf "\n"
@printf "%s\n" "make rebuild-prod-53: Build PHP 5.3 prod image"
@printf "%s\n" "make rebuild-prod-54: Build PHP 5.4 prod image"
@@ -82,6 +88,7 @@ help:
@printf "%s\n" "make rebuild-prod-70: Build PHP 7.0 prod image"
@printf "%s\n" "make rebuild-prod-71: Build PHP 7.1 prod image"
@printf "%s\n" "make rebuild-prod-72: Build PHP 7.2 prod image"
@printf "%s\n" "make rebuild-prod-73: Build PHP 7.3 prod image"
@printf "\n"
@printf "%s\n" "make rebuild-work-53: Build PHP 5.3 work image"
@printf "%s\n" "make rebuild-work-54: Build PHP 5.4 work image"
@@ -90,6 +97,7 @@ help:
@printf "%s\n" "make rebuild-work-70: Build PHP 7.0 work image"
@printf "%s\n" "make rebuild-work-71: Build PHP 7.1 work image"
@printf "%s\n" "make rebuild-work-72: Build PHP 7.2 work image"
@printf "%s\n" "make rebuild-work-73: Build PHP 7.3 work image"
@@ -125,15 +133,15 @@ rebuild-all: rebuild-base rebuild-mods rebuild-prod rebuild-work
###
### Build categories
###
build-base: build-base-53 build-base-54 build-base-55 build-base-56 build-base-70 build-base-71 build-base-72
build-mods: build-mods-53 build-mods-54 build-mods-55 build-mods-56 build-mods-70 build-mods-71 build-mods-72
build-prod: build-prod-53 build-prod-54 build-prod-55 build-prod-56 build-prod-70 build-prod-71 build-prod-72
build-work: build-work-53 build-work-54 build-work-55 build-work-56 build-work-70 build-work-71 build-work-72
build-base: build-base-53 build-base-54 build-base-55 build-base-56 build-base-70 build-base-71 build-base-72 build-base-73
build-mods: build-mods-53 build-mods-54 build-mods-55 build-mods-56 build-mods-70 build-mods-71 build-mods-72 build-mods-73
build-prod: build-prod-53 build-prod-54 build-prod-55 build-prod-56 build-prod-70 build-prod-71 build-prod-72 build-prod-73
build-work: build-work-53 build-work-54 build-work-55 build-work-56 build-work-70 build-work-71 build-work-72 build-work-73
rebuild-base: rebuild-base-53 rebuild-base-54 rebuild-base-55 rebuild-base-56 rebuild-base-70 rebuild-base-71 rebuild-base-72
rebuild-mods: rebuild-mods-53 rebuild-mods-54 rebuild-mods-55 rebuild-mods-56 rebuild-mods-70 rebuild-mods-71 rebuild-mods-72
rebuild-prod: rebuild-prod-53 rebuild-prod-54 rebuild-prod-55 rebuild-prod-56 rebuild-prod-70 rebuild-prod-71 rebuild-prod-72
rebuild-work: rebuild-work-53 rebuild-work-54 rebuild-work-55 rebuild-work-56 rebuild-work-70 rebuild-work-71 rebuild-work-72
rebuild-base: rebuild-base-53 rebuild-base-54 rebuild-base-55 rebuild-base-56 rebuild-base-70 rebuild-base-71 rebuild-base-72 rebuild-base-73
rebuild-mods: rebuild-mods-53 rebuild-mods-54 rebuild-mods-55 rebuild-mods-56 rebuild-mods-70 rebuild-mods-71 rebuild-mods-72 rebuild-mods-73
rebuild-prod: rebuild-prod-53 rebuild-prod-54 rebuild-prod-55 rebuild-prod-56 rebuild-prod-70 rebuild-prod-71 rebuild-prod-72 rebuild-prod-73
rebuild-work: rebuild-work-53 rebuild-work-54 rebuild-work-55 rebuild-work-56 rebuild-work-70 rebuild-work-71 rebuild-work-72 rebuild-work-73
@@ -154,6 +162,8 @@ build-base-71: pull-from-71
docker build -t devilbox/php-fpm:7.1-base -f $(location)/base/Dockerfile-7.1 $(location)/base
build-base-72: pull-from-72
docker build -t devilbox/php-fpm:7.2-base -f $(location)/base/Dockerfile-7.2 $(location)/base
build-base-73: pull-from-73
docker build -t devilbox/php-fpm:7.3-base -f $(location)/base/Dockerfile-7.3 $(location)/base
build-mods-53:
docker build -t devilbox/php-fpm:5.3-mods -f $(location)/mods/Dockerfile-5.3 $(location)/mods
@@ -169,6 +179,8 @@ build-mods-71:
docker build -t devilbox/php-fpm:7.1-mods -f $(location)/mods/Dockerfile-7.1 $(location)/mods
build-mods-72:
docker build -t devilbox/php-fpm:7.2-mods -f $(location)/mods/Dockerfile-7.2 $(location)/mods
build-mods-73:
docker build -t devilbox/php-fpm:7.3-mods -f $(location)/mods/Dockerfile-7.3 $(location)/mods
build-prod-53:
docker build -t devilbox/php-fpm:5.3-prod -f $(location)/prod/Dockerfile-5.3 $(location)/prod
@@ -184,6 +196,8 @@ build-prod-71:
docker build -t devilbox/php-fpm:7.1-prod -f $(location)/prod/Dockerfile-7.1 $(location)/prod
build-prod-72:
docker build -t devilbox/php-fpm:7.2-prod -f $(location)/prod/Dockerfile-7.2 $(location)/prod
build-prod-73:
docker build -t devilbox/php-fpm:7.3-prod -f $(location)/prod/Dockerfile-7.3 $(location)/prod
build-work-53:
docker build -t devilbox/php-fpm:5.3-work -f $(location)/work/Dockerfile-5.3 $(location)/work
@@ -199,6 +213,8 @@ build-work-71:
docker build -t devilbox/php-fpm:7.1-work -f $(location)/work/Dockerfile-7.1 $(location)/work
build-work-72:
docker build -t devilbox/php-fpm:7.2-work -f $(location)/work/Dockerfile-7.2 $(location)/work
build-work-73:
docker build -t devilbox/php-fpm:7.3-work -f $(location)/work/Dockerfile-7.3 $(location)/work
@@ -219,6 +235,8 @@ rebuild-base-71: pull-from-71
docker build --no-cache -t devilbox/php-fpm:7.1-base -f $(location)/base/Dockerfile-7.1 $(location)/base
rebuild-base-72: pull-from-72
docker build --no-cache -t devilbox/php-fpm:7.2-base -f $(location)/base/Dockerfile-7.2 $(location)/base
rebuild-base-73: pull-from-73
docker build --no-cache -t devilbox/php-fpm:7.3-base -f $(location)/base/Dockerfile-7.3 $(location)/base
rebuild-mods-53:
docker build --no-cache -t devilbox/php-fpm:5.3-mods -f $(location)/mods/Dockerfile-5.3 $(location)/mods
@@ -234,6 +252,8 @@ rebuild-mods-71:
docker build --no-cache -t devilbox/php-fpm:7.1-mods -f $(location)/mods/Dockerfile-7.1 $(location)/mods
rebuild-mods-72:
docker build --no-cache -t devilbox/php-fpm:7.2-mods -f $(location)/mods/Dockerfile-7.2 $(location)/mods
rebuild-mods-73:
docker build --no-cache -t devilbox/php-fpm:7.3-mods -f $(location)/mods/Dockerfile-7.3 $(location)/mods
rebuild-prod-53:
docker build --no-cache -t devilbox/php-fpm:5.3-prod -f $(location)/prod/Dockerfile-5.3 $(location)/prod
@@ -249,6 +269,8 @@ rebuild-prod-71:
docker build --no-cache -t devilbox/php-fpm:7.1-prod -f $(location)/prod/Dockerfile-7.1 $(location)/prod
rebuild-prod-72:
docker build --no-cache -t devilbox/php-fpm:7.2-prod -f $(location)/prod/Dockerfile-7.2 $(location)/prod
rebuild-prod-73:
docker build --no-cache -t devilbox/php-fpm:7.3-prod -f $(location)/prod/Dockerfile-7.3 $(location)/prod
rebuild-work-53:
docker build --no-cache -t devilbox/php-fpm:5.3-work -f $(location)/work/Dockerfile-5.3 $(location)/work
@@ -264,6 +286,8 @@ rebuild-work-71:
docker build --no-cache -t devilbox/php-fpm:7.1-work -f $(location)/work/Dockerfile-7.1 $(location)/work
rebuild-work-72:
docker build --no-cache -t devilbox/php-fpm:7.2-work -f $(location)/work/Dockerfile-7.2 $(location)/work
rebuild-work-73:
docker build --no-cache -t devilbox/php-fpm:7.3-work -f $(location)/work/Dockerfile-7.3 $(location)/work
@@ -284,6 +308,8 @@ pull-from-71:
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.1 | sed 's/^FROM//g'; done)
pull-from-72:
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.2 | sed 's/^FROM//g'; done)
pull-from-73:
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.3 | sed 's/^FROM//g'; done)
@@ -304,6 +330,8 @@ test-base-71:
./tests/test.sh 7.1 base
test-base-72:
./tests/test.sh 7.2 base
test-base-73:
./tests/test.sh 7.3 base
test-mods-53:
./tests/test.sh 5.3 mods
@@ -319,6 +347,8 @@ test-mods-71:
./tests/test.sh 7.1 mods
test-mods-72:
./tests/test.sh 7.2 mods
test-mods-73:
./tests/test.sh 7.3 mods
test-prod-53:
./tests/test.sh 5.3 prod
@@ -334,6 +364,8 @@ test-prod-71:
./tests/test.sh 7.1 prod
test-prod-72:
./tests/test.sh 7.2 prod
test-prod-73:
./tests/test.sh 7.3 prod
test-work-53:
./tests/test.sh 5.3 work
@@ -349,3 +381,5 @@ test-work-71:
./tests/test.sh 7.1 work
test-work-72:
./tests/test.sh 7.2 work
test-work-73:
./tests/test.sh 7.3 work

View File

@@ -37,10 +37,11 @@ versions and packed with different types of integrated PHP modules. It also solv
1. [Environment variables](#environment-variables)
2. [Volumes](#volumes)
3. [Ports](#ports)
5. **[Integrated Development Environment](#integrated-development-environment)**
5. **[PHP Default Configuration](#php-default-configuration)**
6. **[Integrated Development Environment](#integrated-development-environment)**
1. [What toos can you expect](#what-tools-can-you-expect)
2. [What else is available](#what-else-is-available)
6. **[Examples](#examples)**
7. **[Examples](#examples)**
1. [Provide PHP-FPM port to host](#provide-php-fpm-port-to-host)
2. [Alter PHP-FPM and system timezone](#alter-php-fpm-and-system-timezone)
3. [Load custom PHP configuration](#load-custom-php-configuration)
@@ -50,10 +51,10 @@ versions and packed with different types of integrated PHP modules. It also solv
7. [Launch Postfix for mail-catching](#launch-postfix-for-mail-catching)
8. [Webserver and PHP-FPM](#webserver-and-php-fpm)
9. [Create MySQL Backups](#create-mysql-backups)
7. **[Automated builds](#automated-builds)**
8. **[Contributing](#contributing)**
9. **[Credits](#credits)**
10. **[License](#license)**
8. **[Automated builds](#automated-builds)**
9. **[Contributing](#contributing)**
10. **[Credits](#credits)**
11. **[License](#license)**
----
@@ -172,7 +173,7 @@ The following table shows a more complete overview about the offered Docker imag
<tbody>
<tr>
<td rowspan="7"><strong>base</strong></td>
<td rowspan="8"><strong>base</strong></td>
<td><code>devilbox/php-fpm:5.3-base</code></td>
<td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.3-base.svg" /></a>
@@ -220,9 +221,16 @@ The following table shows a more complete overview about the offered Docker imag
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.2-base.svg" /></a>
</td>
</tr>
<tr>
<td><code>devilbox/php-fpm:7.3-base</code></td>
<td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:7.3-base.svg" /></a>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.3-base.svg" /></a>
</td>
</tr>
<tr>
<td rowspan="7"><strong>mods</strong></td>
<td rowspan="8"><strong>mods</strong></td>
<td><code>devilbox/php-fpm:5.3-mods</code></td>
<td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.3-mods.svg" /></a>
@@ -271,9 +279,16 @@ The following table shows a more complete overview about the offered Docker imag
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.2-mods.svg" /></a>
</td>
</tr>
<tr>
<td><code>devilbox/php-fpm:7.3-mods</code></td>
<td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:7.3-mods.svg" /></a>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.3-mods.svg" /></a>
</td>
</tr>
<tr>
<td rowspan="7"><strong>prod</strong></td>
<td rowspan="8"><strong>prod</strong></td>
<td><code>devilbox/php-fpm:5.3-prod</code></td>
<td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.3-prod.svg" /></a>
@@ -322,9 +337,16 @@ The following table shows a more complete overview about the offered Docker imag
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.2-prod.svg" /></a>
</td>
</tr>
<tr>
<td><code>devilbox/php-fpm:7.3-prod</code></td>
<td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:7.3-prod.svg" /></a>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.3-prod.svg" /></a>
</td>
</tr>
<tr>
<td rowspan="7"><strong>work</strong></td>
<td rowspan="8"><strong>work</strong></td>
<td><code>devilbox/php-fpm:5.3-work</code></td>
<td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.3-work.svg" /></a>
@@ -373,6 +395,13 @@ The following table shows a more complete overview about the offered Docker imag
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.2-work.svg" /></a>
</td>
</tr>
<tr>
<td><code>devilbox/php-fpm:7.3-work</code></td>
<td>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:7.3-work.svg" /></a>
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.3-work.svg" /></a>
</td>
</tr>
</tbody>
</table>
@@ -473,6 +502,11 @@ Check out this table to see which Docker image provides what PHP modules.
<td id="72-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
<td id="72-mods">amqp, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
</tr>
<tr>
<th>7.3</th>
<td id="73-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
<td id="73-mods">apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcached, mongodb, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
</tr>
</tbody>
</table>
@@ -489,6 +523,7 @@ docker pull devilbox/php-fpm:5.6-base
docker pull devilbox/php-fpm:7.0-base
docker pull devilbox/php-fpm:7.1-base
docker pull devilbox/php-fpm:7.2-base
docker pull devilbox/php-fpm:7.3-base
```
Generic PHP-FPM base image. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.<br/><br/><sub>(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`)</sub>
@@ -502,6 +537,7 @@ docker pull devilbox/php-fpm:5.6-mods
docker pull devilbox/php-fpm:7.0-mods
docker pull devilbox/php-fpm:7.1-mods
docker pull devilbox/php-fpm:7.2-mods
docker pull devilbox/php-fpm:7.3-mods
```
Generic PHP-FPM image with fully loaded extensions. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.<br/><br/><sub>(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`)</sub></td>
@@ -515,6 +551,7 @@ docker pull devilbox/php-fpm:5.6-prod
docker pull devilbox/php-fpm:7.0-prod
docker pull devilbox/php-fpm:7.1-prod
docker pull devilbox/php-fpm:7.2-prod
docker pull devilbox/php-fpm:7.3-prod
```
Devilbox production image. This Docker image comes with many injectables, port-forwardings, mail-catch-all and user/group rewriting.
@@ -528,6 +565,7 @@ docker pull devilbox/php-fpm:5.6-work
docker pull devilbox/php-fpm:7.0-work
docker pull devilbox/php-fpm:7.1-work
docker pull devilbox/php-fpm:7.2-work
docker pull devilbox/php-fpm:7.3-work
```
Devilbox development image. Same as prod, but comes with lots of locally installed tools to make development inside the container as convenient as possible. See [Integrated Development Environment](#integrated-development-environment) for more information about this.
@@ -573,7 +611,7 @@ Have a look at the following table to see all supported environment variables fo
<td colspan="5"></td>
</tr>
<tr>
<td rowspan="4"><strong>prod</strong><br/><br/><strong>work</strong></td>
<td rowspan="6"><strong>prod</strong><br/><br/><strong>work</strong></td>
<td><code>TIMEZONE</code></td>
<td>string</td>
<td><code>UTC</code></td>
@@ -585,6 +623,18 @@ Have a look at the following table to see all supported environment variables fo
<td><code>1</code></td>
<td>By default all Docker images are configured to output their PHP-FPM access and error logs to stdout and stderr. Those which support it can change the behaviour to log into files inside the container. Their respective directories are available as volumes that can be mounted to the host computer. This feature might help developer who are more comfortable with tailing or searching through actual files instead of using docker logs.<br/><br/>Set this variable to <code>0</code> in order to enable logging to files. Log files are avilable under <code>/var/log/php/</code> which is also a docker volume that can be mounted locally.</td>
</tr>
<tr>
<td><code>ENABLE_MODULES</code></td>
<td>string</td>
<td><code>''</code></td>
<td>Comma separated list of PHP modules to enable, which are not enabled by default.<br/><strong>Example:</strong><br/><code>ENABLE_MODULES=ioncube</code></td>
</tr>
<tr>
<td><code>DISABLE_MODULES</code></td>
<td>string</td>
<td><code>''</code></td>
<td>Comma separated list of PHP modules to disable.<br/><strong>Example:</strong><br/><code>DISABLE_MODULES=swoole,imagick</code></td>
</tr>
<tr>
<td><code>ENABLE_MAIL</code></td>
<td>bool</td>
@@ -660,7 +710,7 @@ Have a look at the following table to see all offered volumes for each Docker im
<td colspan="3"></td>
</tr>
<tr>
<td rowspan="2"><strong>work</strong></td>
<td rowspan="3"><strong>work</strong></td>
<td><code>/etc/bashrc-devilbox.d</code></td>
<td>Mount this directory into your host computer and add custom configuration files for <code>bash</code> and other tools.</td>
</tr>
@@ -668,6 +718,10 @@ Have a look at the following table to see all offered volumes for each Docker im
<td><code>/shared/backups</code></td>
<td>Mount this directory into your host computer to access MySQL backups created by <a href="https://mysqldump-secure.org" >mysqldump-secure</a>.</td>
</tr>
<tr>
<td><code>/ca</code></td>
<td>Mount this directory into your host computer to bake any *.crt file that is located in there as a trusted SSL entity.</td>
</tr>
</tbody>
</table>
@@ -695,6 +749,20 @@ Have a look at the following table to see all offered exposed ports for each Doc
<h2><img id="php-default-configuration" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> PHP Default Configuration</h2>
Each PHP version is using the same sane default php.ini values, making it pain-free to switch versions and not having to worry about different php.ini settings.
**Note:** Flavours alway inherit the settings from its parent flavour and will selectively overwrite specific settings.
| Flavour | Applied php.ini files|
|---------|------------------------------------------|
| base | [base.ini](Dockerfiles/base/data/php.d/) |
| mods | - |
| prod | [prod.ini](Dockerfiles/prod/data/php.d/) |
| work | [work.ini](Dockerfiles/work/data/php.d/) |
<h2><img id="integrated-development-environment" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Integrated Development Environment</h2>
If you plan to use the PHP-FPM image for development, hence being able to execute common commands inside the container itself, you should go with the **work** Image.
@@ -793,6 +861,10 @@ You want to use tools such as `git`, `drush`, `composer`, `npm`, `eslint`, `phpc
<td><a href="https://github.com/squizlabs/PHP_CodeSniffer">phpcbf</a></td>
<td>PHP Code Beautifier and Fixer.</td>
</tr>
<tr>
<td><a href="https://photoncms.com/resources/installing">photon</a></td>
<td>Photon CMS cli.</td>
</tr>
<tr>
<td><a href="http://sass-lang.com/">sass</a></td>
<td>Sass CSS compiler.</td>

View File

@@ -0,0 +1,48 @@
; ############################################################
; # Devilbox PHP defaults for all Docker images
; ############################################################
; This php.ini is applied to the base container and inherited
; by every image built on top of it.
; Note that prod and work images overwrite specific settings
; for their use-case.
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 384M
upload_max_filesize = 256M
max_file_uploads = 20
; Vars
variables_order = EGPCS
{% if not (php_version == 5.2 or php_version == 5.3 ) %}
max_input_vars = 8000
{% endif %}
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = Off
display_startup_errors = Off
{% if php_version == 5.2 or php_version == 5.3 or php_version == 5.4 or php_version == 5.5 or php_version == 5.6 or php_version == 7.0 or php_version == 7.1 %}
track_errors = On
{% endif %}
log_errors = On

View File

@@ -0,0 +1,9 @@
; ############################################################
; # Devilbox PHP defaults for all production Docker images
; ############################################################
; This php.ini is applied to the prod container and inherited
; by every image built on top of it.
[PHP]

View File

@@ -0,0 +1,19 @@
; ############################################################
; # Devilbox PHP defaults for all development Docker images
; ############################################################
; This php.ini is applied to the work container.
[PHP]
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
display_errors = On
display_startup_errors = On
{% if php_version == 5.2 or php_version == 5.3 or php_version == 5.4 or php_version == 5.5 or php_version == 5.6 or php_version == 7.0 or php_version == 7.1 %}
track_errors = On
{% endif %}
log_errors = On
html_errors = On

View File

@@ -1,6 +1,8 @@
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
{% if php_version == 5.3 %}
FROM devilbox/php-fpm-5.3
{% elif php_version == 7.3 %}
FROM devilbox/php-fpm-7.3
{% else %}
FROM php:{{ php_version }}-fpm
{% endif %}
@@ -60,6 +62,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-{{ php_version }}.ini /usr/local/etc/php/conf.d/yyy-devilbox-01-base.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
COPY ./data/php-fpm.conf /usr/local/etc/php-fpm.conf

View File

@@ -113,6 +113,9 @@ RUN set -x \
{% endif %}
&& docker-php-ext-enable {{ ext }} \
&& cd / && rm -rf /tmp/{{ ext }} \
{# ---- 4.) CUSTOM ---- #}
{% elif extensions_available[ext][php_version]['type'] == 'custom' %}
&& {{ extensions_available[ext][php_version]['command'] }} \
{% endif %}
{# ---------- Installation (generic) ---------- #}
{% elif 'all' in extensions_available[ext] and 'type' in extensions_available[ext]['all'] %}
@@ -147,6 +150,9 @@ RUN set -x \
{% endif %}
&& docker-php-ext-enable {{ ext }} \
&& cd / && rm -rf /tmp/{{ ext }} \
{# ---- 4.) CUSTOM ---- #}
{% elif extensions_available[ext]['all']['type'] == 'custom' %}
&& {{ extensions_available[ext]['all']['command'] }} \
{% endif %}
{% endif %}
{% endif %}
@@ -181,6 +187,8 @@ RUN set -x \
{% if ext == 'opcache' %}
&& php -m | grep -oiE '^Zend Opcache$' \
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
{% elif ext == 'ioncube' %}
{# Not enabled #}
{% else %}
&& php -m | grep -oiE '^{{ ext }}$' \
&& php-fpm -m | grep -oiE '^{{ ext }}$' \

View File

@@ -50,6 +50,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/php-{{ php_version }}.ini /usr/local/etc/php/conf.d/yyy-devilbox-03-prod.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh

View File

@@ -61,6 +61,7 @@ RUN set -x \
autoconf \
automake \
bash-completion \
build-essential \
bzip2 \
coreutils \
curl \
@@ -77,6 +78,8 @@ RUN set -x \
iputils-ping \
less \
libc-dev \
libffi-dev\
libssl-dev\
make \
mongodb-org-shell \
mongodb-org-tools \
@@ -87,8 +90,12 @@ RUN set -x \
netcat \
nodejs \
openssh-client \
patch \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rubygems \
ruby-dev \
@@ -184,7 +191,7 @@ RUN set -x \
###
### Copy files
###
COPY ./data/php.d/error-reporting.ini /usr/local/etc/php/conf.d/devilbox-error-reporting.ini
COPY ./data/php.d/php-{{ php_version }}.ini /usr/local/etc/php/conf.d/yyy-devilbox-04-work.ini
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
COPY ./data/bash-devilbox /etc/bash-devilbox

View File

@@ -1,5 +1,6 @@
---
# All available Docker flavours (for each version)
template_files:
- src: DOCKERFILES/Dockerfile-base.j2
dst: "../../Dockerfiles/base/Dockerfile-{{ php_version }}"
@@ -10,7 +11,14 @@ template_files:
- src: DOCKERFILES/Dockerfile-work.j2
dst: "../../Dockerfiles/work/Dockerfile-{{ php_version }}"
# PHP.ini files to apply sane defaults
ini_files:
- src: CONFIGURATION/php-base.ini.j2
dst: "../../Dockerfiles/base/data/php.d/php-{{ php_version }}.ini"
- src: CONFIGURATION/php-prod.ini.j2
dst: "../../Dockerfiles/prod/data/php.d/php-{{ php_version }}.ini"
- src: CONFIGURATION/php-work.ini.j2
dst: "../../Dockerfiles/work/data/php.d/php-{{ php_version }}.ini"
# Adds self-validating checks to Dockerfile
@@ -18,6 +26,7 @@ template_files:
debug: True
# All available PHP version
php_all_versions:
- 5.3
- 5.4
@@ -26,8 +35,12 @@ php_all_versions:
- 7.0
- 7.1
- 7.2
- 7.3
# Global variables
compose_home: /usr/local/src/composer
################################################################################
# Defines for Dockerfile "work"
@@ -53,17 +66,23 @@ software_enabled:
# Composer needs to be first, others rely on it
- composer
# Normal packages start here
- ansible
- awesomeci
- codeception
- drush
- drupalconsole
- gitflow
- grunt
- laravel
- linkcheck
- linuxbrew
- mhsendmail
- mysqldumpsecure
- phalcon
- phpcs
- phpcbf
- phpunit
- photon
- sass
- symfony
- webpack
@@ -93,6 +112,8 @@ apt_repositories_available:
git:
7.2:
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main
7.3:
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main
all:
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main
key: A1715D88E1DF1F24
@@ -103,12 +124,16 @@ apt_repositories_available:
node:
7.2:
deb: deb http://deb.nodesource.com/node_8.x stretch main
7.3:
deb: deb http://deb.nodesource.com/node_8.x stretch main
all:
deb: deb http://deb.nodesource.com/node_8.x jessie main
pre: curl -q "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | apt-key add -
pgsql:
7.2:
deb: deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main
7.3:
deb: deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main
all:
deb: deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main
pre: curl -q https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | apt-key add -
@@ -132,6 +157,12 @@ apt_repositories_available:
# pre: [optional] Run command after 'command:' statement
#
software_available:
ansible:
check: ansible --version | grep -E '^ansible [.0-9]+$'
all:
command: |
pip install --upgrade setuptools \
&& pip install ansible \
awesomeci:
check: |
mdl --version | grep -E '[.0-9]+' \
@@ -193,6 +224,12 @@ software_available:
&& rm -rf /usr/local/src/drush/examples \
&& rm -rf /usr/local/src/drush/misc \
&& rm -rf /usr/local/src/drush/tests \
codeception:
check: codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$'
all:
command: |
COMPOSER_HOME="{{ compose_home }}" composer global require codeception/codeception --dev \
&& ln -s {{ compose_home }}/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
drupalconsole:
disabled: [5.3, 5.4]
check: drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]'
@@ -244,6 +281,12 @@ software_available:
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install' \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
linkcheck:
check: linkcheck --version | grep -E '^linkcheck\sv[.0-9]+'
all:
command: |
curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \
linuxbrew:
check: su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+'
all:
@@ -251,13 +294,19 @@ software_available:
git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
mhsendmail:
all:
command: |
wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmai \
mysqldumpsecure:
check: mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+'
all:
@@ -283,6 +332,7 @@ software_available:
&& cd / \
&& rm -rf /usr/local/src/mysqldump-secure \
phalcon:
disabled: [7.3]
check: phalcon commands | grep -E '[.0-9]+'
5.3:
pre: |
@@ -325,6 +375,39 @@ software_available:
command: |
curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
&& chmod +x /usr/local/bin/phpcbf \
phpunit:
check: phpunit --version | grep -iE '^PHPUnit\s[.0-9]+'
5.3:
command: |
curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
5.4:
command: |
curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
5.5:
command: |
curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
5.6:
command: |
curl -qL https://phar.phpunit.de/phpunit-5.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
7.0:
command: |
curl -qL https://phar.phpunit.de/phpunit-6.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
all:
command: |
curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
photon:
check: photon --version | grep -E 'Installer [.0-9]+'
disabled: [5.3, 5.4]
all:
command: |
COMPOSER_HOME="{{ compose_home }}" composer global require "photoncms/installer" \
&& ln -s {{ compose_home }}/vendor/photoncms/installer/photon /usr/local/bin/photon \
sass:
check: sass --version | grep -E '[.0-9]+'
all:
@@ -382,6 +465,8 @@ software_available:
### Extensions to actually enable
###
extensions_enabled:
# ioncube must be loaded first
- ioncube
- amqp
- apcu
- bcmath
@@ -489,16 +574,22 @@ extensions_enabled:
# git_ref: [optional] Tag, branch, commit to checkout
# configure: [optional] Add './configure' arguments
# command: [optional] Overwrite default command (phpize && ./configure && make && make install)
# type: custom
# command: [required] Custom command to install and enable a module
extensions_available:
amqp:
7.2:
type: pecl
run_dep: [librabbitmq4]
disabled: [7.3]
5.3:
run_dep: [librabbitmq1]
5.4:
run_dep: [librabbitmq1]
5.5:
run_dep: [librabbitmq1]
all:
type: pecl
command: echo "/usr" | pecl install amqp
build_dep: [librabbitmq-dev]
run_dep: [librabbitmq1]
run_dep: [librabbitmq4]
apcu:
5.3:
type: pecl
@@ -564,27 +655,40 @@ extensions_available:
configure: --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf
build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev]
run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6]
7.0:
type: builtin
configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf
build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev]
run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp-dev]
7.1:
type: builtin
configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf
build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev]
run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6, libwebp-dev]
7.2:
type: builtin
configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv
build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev]
run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6]
all:
5.4:
type: builtin
pre: ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/
configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf
build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev]
run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6]
5.5:
type: builtin
pre: ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/
configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf
build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev]
run_dep: [libpng12-0, libjpeg62-turbo, libxpm4, libvpx1, libfreetype6]
5.6:
type: builtin
pre: ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/
configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf
7.0:
type: builtin
configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf
7.1:
type: builtin
configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf
7.2:
type: builtin
configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv
7.3:
type: builtin
configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv
all:
type: builtin
pre: ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/
configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf
build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev]
run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6]
gettext:
all:
type: builtin
@@ -606,15 +710,17 @@ extensions_available:
5.3:
type: pecl
version: 3.3.0
build_dep: [libmagickwand-dev]
run_dep: [libmagickwand-6.q16-2]
7.2:
5.4:
type: pecl
run_dep: [libmagickwand-6.q16-3]
run_dep: [libmagickwand-6.q16-2]
5.5:
type: pecl
run_dep: [libmagickwand-6.q16-2]
all:
type: pecl
build_dep: [libmagickwand-dev]
run_dep: [libmagickwand-6.q16-2]
run_dep: [libmagickwand-6.q16-3]
imap:
all:
type: builtin
@@ -628,13 +734,33 @@ extensions_available:
build_dep: [libfbclient2, libib-util, firebird-dev]
run_dep: [libfbclient2]
intl:
7.2:
5.3:
type: builtin
run_dep: [libicu57]
run_dep: [libicu52]
5.4:
type: builtin
run_dep: [libicu52]
5.5:
type: builtin
run_dep: [libicu52]
all:
type: builtin
build_dep: [libicu-dev]
run_dep: [libicu52]
run_dep: [libicu57]
ioncube:
disabled: [7.3]
all:
type: custom
command: |
EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
&& tar xvfz ioncube.tar.gz \
&& cd ioncube \
&& cp "ioncube_loader_lin_{{ php_version }}.so" "${EXTENSION_DIR}/ioncube.so" \
&& cd ../ \
&& rm -rf ioncube \
&& rm -rf ioncube.tar.gz \
json:
7.0:
type: builtin
@@ -650,17 +776,22 @@ extensions_available:
libxml:
disabled: "{{ php_all_versions }}" # Available by default
mbstring:
disabled: [7.3]
all:
type: builtin
mcrypt:
7.2:
type: pecl
version: 1.0.1
7.3:
type: pecl
version: 1.0.1
all:
type: builtin
run_dep: [libmcrypt4]
build_dep: [libmcrypt-dev]
memcache:
disabled: [7.3]
7.0:
type: git
git_url: https://github.com/websupport-sk/pecl-memcache
@@ -689,12 +820,17 @@ extensions_available:
5.6:
type: pecl
version: 2.2.0
7.3:
type: git
git_url: https://github.com/php-memcached-dev/php-memcached
git_ref: master
command: phpize && ./configure --enable-memcached && make -j$(getconf _NPROCESSORS_ONLN) && make install
all:
type: pecl
build_dep: [zlib1g-dev, libmemcached-dev]
run_dep: [libmemcachedutil2]
mongo:
disabled: [7.0, 7.1, 7.2] # Deprecated
disabled: [7.0, 7.1, 7.2, 7.3] # Deprecated
all:
type: pecl
command: yes | pecl install mongo
@@ -703,15 +839,14 @@ extensions_available:
5.3:
type: pecl
version: 0.6.3
build_dep: [libssl-dev, libsasl2-dev]
5.4:
type: pecl
version: 1.2.11
build_dep: [libssl-dev, libsasl2-dev]
all:
type: pecl
build_dep: [libssl-dev, libsasl2-dev]
msgpack:
disabled: [7.3]
5.3:
type: pecl
version: 0.5.7
@@ -727,7 +862,10 @@ extensions_available:
all:
type: pecl
mysql:
disabled: [7.0, 7.1, 7.2] # Deprecated in newer versions
disabled: [7.0, 7.1, 7.2, 7.3] # Deprecated in newer versions
5.6:
type: builtin
run_dep: [libmariadbclient18]
all:
type: builtin
run_dep: [libmysqlclient18]
@@ -796,6 +934,7 @@ extensions_available:
build_dep: [libpq-dev]
run_dep: [libpq5]
phalcon:
disabled: [7.3]
5.3:
type: git
git_url: https://github.com/phalcon/cphalcon
@@ -806,6 +945,12 @@ extensions_available:
git_url: https://github.com/phalcon/cphalcon
git_ref: phalcon-v2.0.13
command: cd build && ./install
# 7.3:
# type: git
# git_url: https://github.com/phalcon/cphalcon
# git_ref: $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g')
# # TODO: Workaround to make it compile on PHP 7.3
# command: cd build && echo > php7/64bits/phalcon.zep.c && ./install
all:
type: git
git_url: https://github.com/phalcon/cphalcon
@@ -813,7 +958,7 @@ extensions_available:
command: cd build && ./install
phar:
# https://github.com/docker-library/php/issues/618
disabled: [7.0] # TODO: Currently disabled due to bug in built
disabled: [5.6, 7.0] # TODO: Currently disabled due to bug in built
all:
type: builtin
build_dep: [libssl-dev]
@@ -867,7 +1012,7 @@ extensions_available:
type: builtin
sodium:
disabled: [5.3, 5.4, 5.5, 5.6, 7.0, 7.1]
7.2:
all:
type: builtin
build_dep: [libsodium-dev]
spl:
@@ -876,22 +1021,64 @@ extensions_available:
5.3:
type: pecl
version: 1.9.23
run_dep: [libnghttp2-5]
5.4:
type: pecl
version: 1.9.23
run_dep: [libnghttp2-5]
5.5:
type: pecl
version: 1.9.23
run_dep: [libnghttp2-5]
5.6:
type: pecl
version: 1.9.23
7.2:
7.0:
type: pecl
run_dep: [libnghttp2-14]
version: 2.2.0
7.3:
type: git
git_url: https://github.com/swoole/swoole-src
git_ref: master
command: |
git submodule update --init --recursive \
&& cd thirdparty/hiredis \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
&& cd ../nghttp2 \
&& cmake . \
&& make install \
&& ldconfig \
&& cd ../.. \
&& phpize \
&& ./configure \
--enable-async-redis \
--enable-openssl \
--enable-thread \
--enable-swoole \
--enable-swoole-static \
--with-swoole \
--with-openssl-dir=/usr \
--enable-mysqlnd \
--enable-coroutine \
--enable-picohttpparser \
#`--enable-timewheel` \
#`--enable-hugepage` \
#`--enable-asan` \
#`--with-phpx-dir=` \
#`--with-jemalloc-dir=/usr/include/jemalloc` \
#`--enable-coroutine-postgresql` \
#`--enable-http2` \
#`--enable-sockets` \
#`--with-libpq-dir=/usr/include/postgresql/libpq/` \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
run_dep: [libnghttp2-14, libhiredis0.13]
build_dep: [libnghttp2-dev, libssl-dev, libhiredis-dev, cmake]
all:
type: pecl
build_dep: [libnghttp2-dev, libssl-dev]
run_dep: [libnghttp2-5]
run_dep: [libnghttp2-14]
sysvmsg:
all:
type: builtin
@@ -902,13 +1089,19 @@ extensions_available:
all:
type: builtin
tidy:
7.2:
5.3:
type: builtin
run_dep: [libtidy5]
run_dep: [libtidy-0.99-0]
5.4:
type: builtin
run_dep: [libtidy-0.99-0]
5.5:
type: builtin
run_dep: [libtidy-0.99-0]
all:
type: builtin
build_dep: [libtidy-dev]
run_dep: [libtidy-0.99-0]
run_dep: [libtidy5]
tokenizer:
all:
type: builtin
@@ -925,6 +1118,10 @@ extensions_available:
type: git
git_url: https://github.com/php/pecl-php-uploadprogress
configure: --enable-uploadprogress
7.3:
type: git
git_url: https://github.com/php/pecl-php-uploadprogress
configure: --enable-uploadprogress
all:
type: pecl
wddx:
@@ -933,6 +1130,7 @@ extensions_available:
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
xdebug:
disabled: [7.3]
5.3:
type: pecl
version: 2.2.7
@@ -953,7 +1151,7 @@ extensions_available:
configure: --with-libxml-dir=/usr
build_dep: [libxml2-dev]
xmlreader:
disabled: [7.0, 7.1, 7.2] # Available by default
disabled: [7.0, 7.1, 7.2, 7.3] # Available by default
all:
type: builtin
configure: --with-libxml-dir=/usr
@@ -989,11 +1187,8 @@ extensions_available:
configure: --with-zlib-dir=/usr --with-pcre-dir=/usr
build_dep: [zlib1g-dev]
run_dep: []
7.2:
type: builtin
run_dep: [libzip4]
all:
type: builtin
configure: --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip
build_dep: [zlib1g-dev, libzip-dev]
run_dep: [libzip2]
run_dep: [libzip4]

View File

@@ -6,3 +6,4 @@ php-5.6 php_version=5.6 ansible_connection=local
php-7.0 php_version=7.0 ansible_connection=local
php-7.1 php_version=7.1 ansible_connection=local
php-7.2 php_version=7.2 ansible_connection=local
php-7.3 php_version=7.3 ansible_connection=local

View File

@@ -2,9 +2,18 @@
- name: render template
template:
src: "{{ item.src }}"
src: "{{ item.src }}"
dest: "{{ item.dst }}"
force: True
mode: 0644
mode: 0644
with_items:
- "{{ template_files }}"
- name: copy php.ini configuration
template:
src: "{{ item.src }}"
dest: "{{ item.dst }}"
force: True
mode: 0644
with_items:
- "{{ ini_files }}"

View File

@@ -21,6 +21,7 @@ print_usage() {
echo " gen-readme.sh 7.0"
echo " gen-readme.sh 7.1"
echo " gen-readme.sh 7.2"
echo " gen-readme.sh 7.3"
}
@@ -69,6 +70,7 @@ if [ "${#}" -eq "0" ]; then
update_readme "7.0"
update_readme "7.1"
update_readme "7.2"
update_readme "7.3"
elif [ "${#}" -gt "1" ]; then
# Specifying more than 1 argument is wrong
echo "Error, invalid number of arguments."
@@ -81,7 +83,8 @@ else
&& [ "${1}" != "5.6" ] \
&& [ "${1}" != "7.0" ] \
&& [ "${1}" != "7.1" ] \
&& [ "${1}" != "7.2" ]; then
&& [ "${1}" != "7.2" ] \
&& [ "${1}" != "7.3" ]; then
# Argument does not match any of the PHP versions
echo "Error, invalid argument."
print_usage