Skip to content

Commit

Permalink
Merge pull request #126 from bryanlatten/edge-updates
Browse files Browse the repository at this point in the history
Dockerfile-edge: 7.1 variant out of beta
  • Loading branch information
bryanlatten authored Mar 7, 2017
2 parents 34bcb92 + 2098b27 commit d028526
Show file tree
Hide file tree
Showing 11 changed files with 176 additions and 37 deletions.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ RUN apt-get update -q && \
pecl install yaml-2.0.0 && \
echo "extension=yaml.so" > $CONF_PHPMODS/yaml.ini && \
# Install new PHP7-stable version of Redis \
pecl install redis-3.1.0 && \
pecl install redis-3.1.1 && \
echo "extension=redis.so" > $CONF_PHPMODS/redis.ini && \
# Install kafka extension
pecl install rdkafka-3.0.1 && \
Expand Down
7 changes: 5 additions & 2 deletions Dockerfile-alpine
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ RUN apk update && \
curl \
wget \
php7 \
php7-bz2 \
php7-fpm \
php7-apcu \
php7-calendar \
Expand Down Expand Up @@ -61,7 +62,6 @@ RUN apk update && \
php7-pdo_mysql \
php7-phar \
php7-posix \
# php7-readline \ --- not currently working on PHP 7
php7-session \
php7-sockets \
php7-sysvmsg \
Expand Down Expand Up @@ -121,11 +121,14 @@ RUN apk update && \
autoconf file g++ gcc libc-dev make pkgconf re2c php7-dev php7-pear \
&& \
sed -i 's/^exec $PHP -C -n/exec $PHP -C/g' $(which pecl) && \
# Install new PHP7-stable version of igbinary \
pecl install igbinary-2.0.1 && \
echo "extension=igbinary.so" > $CONF_PHPMODS/igbinary.ini && \
# Install new PHP7-stable version of Yaml \
pecl install yaml-2.0.0 && \
echo ";extension=yaml.so" > $CONF_PHPMODS/yaml.ini && \
# Install new PHP7-stable version of Redis \
pecl install redis-3.1.0 && \
pecl install redis-3.1.1 && \
echo ";extension=redis.so" > $CONF_PHPMODS/redis.ini && \
# Install kafka extension
pecl install rdkafka && \
Expand Down
15 changes: 8 additions & 7 deletions Dockerfile-edge
Original file line number Diff line number Diff line change
Expand Up @@ -77,12 +77,12 @@ RUN apt-get update -q && \
php7.1-mcrypt \
php7.1-mysql \
php7.1-pgsql \
# php7.1-gearman \ <-- no longer built for PHP 7.1
php7.1-gearman \
php7.1-memcache \
php7.1-memcached \
php7.1-xml \
php7.1-zip \
# php-xdebug \ <-- no longer built for PHP 7.1
php-xdebug \
newrelic-php5=${NEWRELIC_VERSION} \
newrelic-php5-common=${NEWRELIC_VERSION} \
newrelic-daemon=${NEWRELIC_VERSION} \
Expand All @@ -91,14 +91,15 @@ RUN apt-get update -q && \
&& \
phpdismod pdo_pgsql && \
phpdismod pgsql && \
phpdismod xdebug && \
curl -sS https://getcomposer.org/installer | php && \
mv composer.phar /usr/local/bin/composer && \
# Install new PHP7-stable version of Yaml \
# Install new PHP 7.1-stable version of Yaml \
pecl install yaml-2.0.0 && \
echo "extension=yaml.so" > $CONF_PHPMODS/yaml.ini && \
# Install new PHP7-stable version of Redis <--- currently broken due to PHP 7.1.0-1 compatibility with version check
# pecl install redis-3.1.0 && \
# echo "extension=redis.so" > $CONF_PHPMODS/redis.ini && \
# Install new PHP 7.1-stable version of Redis
pecl install redis-3.1.1 && \
echo "extension=redis.so" > $CONF_PHPMODS/redis.ini && \
# Install kafka extension
pecl install rdkafka-3.0.1 && \
echo "extension=rdkafka.so" > $CONF_PHPMODS/rdkafka.ini && \
Expand All @@ -123,5 +124,5 @@ RUN cp /etc/php/7.0/mods-available/* $CONF_PHPMODS && \
# - Run standard set of tweaks to ensure runs performant, reliably, and consistent between variants
/bin/bash -e /prep-php.sh

RUN goss -g /tests/php-fpm/beta.goss.yaml validate && \
RUN goss -g /tests/php-fpm/edge.goss.yaml validate && \
/aufs_hack.sh
2 changes: 1 addition & 1 deletion Dockerfile-legacy
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ RUN apt-get update -q && \
pecl install yaml-1.3.0 && \
echo "extension=yaml.so" > $CONF_PHPMODS/yaml.ini && \
# Install new PHP5-stable version of Redis \
pecl install redis-3.1.0 && \
pecl install redis-3.1.1 && \
echo "extension=redis.so" > $CONF_PHPMODS/redis.ini && \
# Install kafka extension
pecl install rdkafka-3.0.1 && \
Expand Down
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Add’s PHP-FPM, mods, and specific backend configuration to Behance’s [docker
Three variants are available:
- (default) Ubuntu-based, PHP 7.0
- (slim) Alpine-based, PHP 7.0, tagged as `-alpine`
- (beta) Ubuntu-based, PHP 7.1, tagged as `-beta`
- (edge) Ubuntu-based, PHP 7.1, tagged as `-edge`
- (legacy) Ubuntu-based, PHP 5.6, tagged as `-legacy`

###Includes
Expand All @@ -23,27 +23,27 @@ Three variants are available:
- Extra PHP Modules:

`*` - not available on Alpine variant
`^` - not available on Beta tag
`^` - not available on Edge variant
`~` - disabled by default (use `phpenmod` to enable on Ubuntu-based variants, uncomment .ini file otherwise)
- apc*^ (only visible for backwards compatibility)
- apcu^
- apc* (only visible for backwards compatibility)
- apcu
- calendar
- bz2
- ctype
- curl
- date
- dom
- exif
- fpm
- cgi-fcgi
- gd
- gearman*^
- gearman*
- iconv
- igbinary*
- igbinary
- intl
- json
- mbstring
- mcrypt
- memcache*^
- memcache*
- memcached
- mysqli
- mysqlnd
Expand All @@ -58,14 +58,14 @@ Three variants are available:
- phar
- posix
- rdkafka~
- redis~^
- redis~
- shmop
- SimpleXML
- sockets
- sysvmsg
- sysvsem
- sysvshm
- xdebug~^
- xdebug~
- xml
- xmlreader
- xmlwriter
Expand Down
9 changes: 2 additions & 7 deletions container/root/tests/php-fpm/alpine.goss.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,13 @@ command:
exit-status: 0
stdout: [PHP 7.0]
stderr: ['!/./']
# On Alpine-only, session is not loaded as part of the core, and must be loaded at this time
php -n -d extension=session.so -d extension=redis.so -m | grep redis:
exit-status: 0
stderr: ['!/./']
php -n -d extension=rdkafka.so -m | grep rdkafka:
exit-status: 0
stderr: ['!/./']
# Assert librdkafka version
apk info librdkafka | grep 0.9.1:
# Assert librdkafka version -0.9.*
apk info librdkafka | grep "librdkafka-0.9.":
exit-status: 0
stderr: ['!/./']
stdout: ['0.9.1']

package:
php7:
Expand Down
108 changes: 107 additions & 1 deletion container/root/tests/php-fpm/base.goss.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,108 @@ command:
php-fpm -v:
exit-status: 0
stderr: ['!/./']
# Hack: to test and validate by-default disabled extensions [without side effects]

# Test the standard extensions are enabled
php -m | grep -i apcu:
exit-status: 0
php -m | grep -i calendar:
exit-status: 0
php -m | grep -i bz2:
exit-status: 0
php -m | grep -i ctype:
exit-status: 0
php -m | grep -i curl:
exit-status: 0
php -m | grep -i date:
exit-status: 0
php -m | grep -i dom:
exit-status: 0
php -m | grep -i exif:
exit-status: 0
# NOTE: extensions only activates running through FPM mode
php-fpm -m | grep -i cgi-fcgi:
exit-status: 0
php -m | grep -i gd:
exit-status: 0
php -m | grep -i iconv:
exit-status: 0
php -m | grep -i intl:
exit-status: 0
php -m | grep -i json:
exit-status: 0
php -m | grep -i mbstring:
exit-status: 0
php -m | grep -i mcrypt:
exit-status: 0
php -m | grep -i memcached:
exit-status: 0
php -m | grep -i mysqli:
exit-status: 0
php -m | grep -i mysqlnd:
exit-status: 0
php -m | grep -i opcache:
exit-status: 0
php -m | grep -i openssl:
exit-status: 0
php -m | grep -i pcntl:
exit-status: 0
php -m | grep -i pdo:
exit-status: 0
php -m | grep -i pdo_mysql:
exit-status: 0
php -m | grep -i phar:
exit-status: 0
php -m | grep -i posix:
exit-status: 0
php -m | grep -i readline:
exit-status: 0
php -m | grep -i shmop:
exit-status: 0
php -m | grep -i simplexml:
exit-status: 0
php -m | grep -i sockets:
exit-status: 0
php -m | grep -i sysvmsg:
exit-status: 0
php -m | grep -i sysvsem:
exit-status: 0
php -m | grep -i sysvshm:
exit-status: 0
php -m | grep -i xml:
exit-status: 0
php -m | grep -i xmlreader:
exit-status: 0
php -m | grep -i xmlwriter:
exit-status: 0
php -m | grep -i zip:
exit-status: 0
php -m | grep -i zlib:
exit-status: 0

# Test that extra extensions are disabled by default
php -m | grep newrelic:
exit-status: 1
stderr: ['!/./']
php -m | grep pdo_pgsql:
exit-status: 1
stderr: ['!/./']
php -m | grep pgsql:
exit-status: 1
stderr: ['!/./']
php -m | grep rdkafka:
exit-status: 1
stderr: ['!/./']
php -m | grep redis:
exit-status: 1
stderr: ['!/./']
php -m | grep yaml:
exit-status: 1
stderr: ['!/./']
php -m | grep xdebug:
exit-status: 1
stderr: ['!/./']
# To test and validate by-default disabled extensions [without side effects]
# Hack:
# 1. run php with no ini file (-n)
# 2. pass ini key-value (-d), enable the single extension to test
# 3. list the newly loaded php mods (-m)
Expand All @@ -42,3 +143,8 @@ command:
php -n -d extension=rdkafka.so -m | grep rdkafka:
exit-status: 0
stderr: ['!/./']
# On some variants, session is not loaded as part of the core, and must be loaded at this time
php -n -d extension=session.so -d extension=redis.so -m | grep redis:
exit-status: 0
# On session-default installs, re-loading session causes a warning, ignore
# stderr: ['!/./']
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,34 @@ package:
installed: true
php7.1-mbstring:
installed: true
php7.1-mcrypt:
installed: true
php7.1-mysql:
installed: true
php7.1-opcache:
installed: true
php7.1-pgsql:
installed: true
php7.1-readline:
installed: true
php7.1-xml:
installed: true
php7.1-zip:
installed: true
php-apcu:
installed: true
php-gearman:
installed: true
php-igbinary:
installed: true
php-memcache:
installed: true
php-memcached:
installed: true
php-msgpack:
installed: true
php-xdebug:
installed: true

file:
# TODO: hopefully https://github.com/aelsabbahy/goss/issues/164 allows this to be a shared test using env variables
Expand Down
23 changes: 20 additions & 3 deletions container/root/tests/php-fpm/legacy.goss.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@ command:
exit-status: 0
stdout: [PHP 5.6]
stderr: ['!/./']
php -n -d extension=redis.so -m | grep redis:
exit-status: 0
stderr: ['!/./']
# Assert librdkafka version
dpkg -s librdkafka-dev | grep 0.9.1:
exit-status: 0
Expand All @@ -44,14 +41,34 @@ package:
installed: true
php5.6-mbstring:
installed: true
php5.6-mcrypt:
installed: true
php5.6-mysql:
installed: true
php5.6-opcache:
installed: true
php5.6-pgsql:
installed: true
php5.6-readline:
installed: true
php5.6-xml:
installed: true
php5.6-zip:
installed: true
php-apcu:
installed: true
php-gearman:
installed: true
php-igbinary:
installed: true
php-memcache:
installed: true
php-memcached:
installed: true
php-msgpack:
installed: true
php-xdebug:
installed: true

file:
# TODO: hopefully https://github.com/aelsabbahy/goss/issues/164 allows this to be a shared test using env variables
Expand Down
3 changes: 0 additions & 3 deletions container/root/tests/php-fpm/ubuntu.goss.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@ command:
exit-status: 0
stdout: [PHP 7.0]
stderr: ['!/./']
php -n -d extension=redis.so -m | grep redis:
exit-status: 0
stderr: ['!/./']
php -n -d extension=rdkafka.so -m | grep rdkafka:
exit-status: 0
stderr: ['!/./']
Expand Down
4 changes: 2 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ edge:
volumes:
- ./container/root/app:/app
- ./container/root/tests/php-fpm/base.goss.yaml:/tests/php-fpm/base.goss.yaml
- ./container/root/tests/php-fpm/beta.goss.yaml:/tests/php-fpm/beta.goss.yaml
- ./container/root/tests/php-fpm/edge.goss.yaml:/tests/php-fpm/edge.goss.yaml
legacy:
build: .
dockerfile: Dockerfile-legacy
Expand All @@ -80,4 +80,4 @@ legacy:
volumes:
- ./container/root/app:/app
- ./container/root/tests/php-fpm/base.goss.yaml:/tests/php-fpm/base.goss.yaml
- ./container/root/tests/php-fpm/beta.goss.yaml:/tests/php-fpm/legacy.goss.yaml
- ./container/root/tests/php-fpm/legacy.goss.yaml:/tests/php-fpm/legacy.goss.yaml

0 comments on commit d028526

Please sign in to comment.