Files
docker-php/dev/Makefile
T
Paolo Cuffiani 1fdcdf3e17 Add CLI tags.
Add CLI tags to 5.4, 5.5, 5.6 (both prod and dev) and 7.0 (only prod), to help with unit testing.
2015-11-11 19:11:12 +01:00

87 lines
2.0 KiB
Makefile

.PHONY: pull build test
PARENT_IMAGE = chialab/php
IMAGE = chialab/php-dev
TAGS = \
latest \
5.4 \
5.4-apache \
5.4-fpm \
5.5 \
5.5-apache \
5.5-fpm \
5.6 \
5.6-apache \
5.6-fpm
EXTENSIONS = \
bz2 \
calendar \
iconv \
intl \
gd \
mbstring \
mcrypt \
memcached \
mysql \
mysqli \
pdo_mysql \
pdo_pgsql \
pgsql \
redis \
Xdebug \
zip
NO_PHP_7 = memcached mysql redis
pull:
@for tag in $(TAGS); do \
docker pull $(PARENT_IMAGE):$${tag}; \
done
build: pull
@for tag in $(TAGS); do \
dir=`echo "$${tag}" | sed s:-:/:`; \
if [ $$tag == 'latest' ]; then \
dir='.'; \
fi; \
docker build -t $(IMAGE):$${tag} $${dir}; \
done
test:
@echo 'Testing loaded extensions...'
@for tag in $(TAGS); do \
modules=`docker run --rm $(IMAGE):$${tag} php -m`; \
echo " - $${tag}... \c"; \
for ext in $(EXTENSIONS); do \
if ([[ $$tag != '7'* ]] || [[ "$(NO_PHP_7)" != *$$ext* ]]) && [[ $$modules != *$$ext* ]]; then \
echo "FAIL [$${ext}]"; \
exit 1; \
fi \
done; \
if [[ $$tag = *'-apache' ]]; then \
apache=`docker run --rm $(IMAGE):$${tag} apache2ctl -M 2> /dev/null`; \
if [[ $$apache != *'rewrite_module'* ]]; then \
echo 'FAIL [mod_rewrite]'; \
exit 1; \
fi \
fi; \
if [[ $$tag != *'-apache' ]] && [[ $$tag != *'-fpm' ]]; then \
if [[ -z `docker run --rm $(IMAGE):latest composer --version | grep '^Composer version \d\d*\.\d\d*'` ]]; then \
echo 'FAIL [Composer]'; \
exit 1; \
fi; \
if [[ -z `docker run --rm $(IMAGE):latest phpcs --version | grep '^PHP_CodeSniffer version \d\d*\.\d\d*\.\d\d*'` ]]; then \
echo 'FAIL [PHP_CodeSniffer]'; \
exit 1; \
fi; \
if [[ -z `docker run --rm $(IMAGE):latest phpmd --version | grep '^PHPMD \d\d*\.\d\d*\.\d\d*'` ]]; then \
echo 'FAIL [PHPMD]'; \
exit 1; \
fi; \
if [[ -z `docker run --rm $(IMAGE):latest phpunit --version | grep '^PHPUnit \d\d*\.\d\d*\.\d\d*'` ]]; then \
echo 'FAIL [PHPUnit]'; \
exit 1; \
fi \
fi; \
echo 'OK'; \
done