├── .dockerignore ├── .gitignore ├── php7.0-phpunit5 └── Dockerfile ├── php7.0-phpunit6 └── Dockerfile ├── php7.1-phpunit5 └── Dockerfile ├── php7.1-phpunit6 └── Dockerfile ├── php7.1-phpunit7 └── Dockerfile ├── php7.2-phpunit5 └── Dockerfile ├── php7.2-phpunit6 └── Dockerfile ├── php7.2-phpunit7 └── Dockerfile ├── LICENSE └── README.md /.dockerignore: -------------------------------------------------------------------------------- 1 | *.sh 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea/ 2 | /.vscode/ -------------------------------------------------------------------------------- /php7.0-phpunit5/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.0-cli 2 | MAINTAINER Chris Allan 3 | ENV DEBIAN_FRONTEND noninteractive 4 | 5 | RUN apt-get update -yqq \ 6 | && apt-get install git zlib1g-dev libsqlite3-dev -y \ 7 | && docker-php-ext-install zip \ 8 | && docker-php-ext-install pdo_mysql \ 9 | && docker-php-ext-install pdo_sqlite 10 | 11 | RUN curl -fsSL https://getcomposer.org/installer | php \ 12 | && mv composer.phar /usr/local/bin/composer \ 13 | && composer global require phpunit/phpunit ^5.7 --no-progress --no-scripts --no-interaction 14 | 15 | RUN pecl install xdebug \ 16 | && echo 'zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so' > \ 17 | /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ 18 | && php -m | grep xdebug 19 | 20 | ENV PATH /root/.composer/vendor/bin:$PATH 21 | CMD ["phpunit"] 22 | -------------------------------------------------------------------------------- /php7.0-phpunit6/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.0-cli 2 | MAINTAINER Chris Allan 3 | ENV DEBIAN_FRONTEND noninteractive 4 | 5 | RUN apt-get update -yqq \ 6 | && apt-get install git zlib1g-dev libsqlite3-dev -y \ 7 | && docker-php-ext-install zip \ 8 | && docker-php-ext-install pdo_mysql \ 9 | && docker-php-ext-install pdo_sqlite 10 | 11 | RUN curl -fsSL https://getcomposer.org/installer | php \ 12 | && mv composer.phar /usr/local/bin/composer \ 13 | && composer global require phpunit/phpunit ^6.2 --no-progress --no-scripts --no-interaction 14 | 15 | RUN pecl install xdebug \ 16 | && echo 'zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so' > \ 17 | /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ 18 | && php -m | grep xdebug 19 | 20 | ENV PATH /root/.composer/vendor/bin:$PATH 21 | CMD ["phpunit"] 22 | -------------------------------------------------------------------------------- /php7.1-phpunit5/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.1-cli 2 | MAINTAINER Chris Allan 3 | ENV DEBIAN_FRONTEND noninteractive 4 | 5 | RUN apt-get update -yqq \ 6 | && apt-get install git zlib1g-dev libsqlite3-dev -y \ 7 | && docker-php-ext-install zip \ 8 | && docker-php-ext-install pdo_mysql \ 9 | && docker-php-ext-install pdo_sqlite 10 | 11 | RUN curl -fsSL https://getcomposer.org/installer | php \ 12 | && mv composer.phar /usr/local/bin/composer \ 13 | && composer global require phpunit/phpunit ^5.7 --no-progress --no-scripts --no-interaction 14 | 15 | RUN pecl install xdebug \ 16 | && echo 'zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so' > \ 17 | /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ 18 | && php -m | grep xdebug 19 | 20 | ENV PATH /root/.composer/vendor/bin:$PATH 21 | CMD ["phpunit"] 22 | -------------------------------------------------------------------------------- /php7.1-phpunit6/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.1-cli 2 | MAINTAINER Chris Allan 3 | ENV DEBIAN_FRONTEND noninteractive 4 | 5 | RUN apt-get update -yqq \ 6 | && apt-get install git zlib1g-dev libsqlite3-dev -y \ 7 | && docker-php-ext-install zip \ 8 | && docker-php-ext-install pdo_mysql \ 9 | && docker-php-ext-install pdo_sqlite 10 | 11 | RUN curl -fsSL https://getcomposer.org/installer | php \ 12 | && mv composer.phar /usr/local/bin/composer \ 13 | && composer global require phpunit/phpunit ^6.2 --no-progress --no-scripts --no-interaction 14 | 15 | RUN pecl install xdebug \ 16 | && echo 'zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so' > \ 17 | /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ 18 | && php -m | grep xdebug 19 | 20 | ENV PATH /root/.composer/vendor/bin:$PATH 21 | CMD ["phpunit"] 22 | -------------------------------------------------------------------------------- /php7.1-phpunit7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.1-cli 2 | MAINTAINER Chris Allan 3 | ENV DEBIAN_FRONTEND noninteractive 4 | 5 | RUN apt-get update -yqq \ 6 | && apt-get install git zlib1g-dev libsqlite3-dev -y \ 7 | && docker-php-ext-install zip \ 8 | && docker-php-ext-install pdo_mysql \ 9 | && docker-php-ext-install pdo_sqlite 10 | 11 | RUN curl -fsSL https://getcomposer.org/installer | php \ 12 | && mv composer.phar /usr/local/bin/composer \ 13 | && composer global require phpunit/phpunit ^7.0 --no-progress --no-scripts --no-interaction 14 | 15 | RUN pecl install xdebug \ 16 | && echo 'zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so' > \ 17 | /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ 18 | && php -m | grep xdebug 19 | 20 | ENV PATH /root/.composer/vendor/bin:$PATH 21 | CMD ["phpunit"] 22 | -------------------------------------------------------------------------------- /php7.2-phpunit5/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.2-cli 2 | MAINTAINER Chris Allan 3 | ENV DEBIAN_FRONTEND noninteractive 4 | 5 | RUN apt-get update -yqq \ 6 | && apt-get install git zlib1g-dev libsqlite3-dev -y \ 7 | && docker-php-ext-install zip \ 8 | && docker-php-ext-install pdo_mysql \ 9 | && docker-php-ext-install pdo_sqlite 10 | 11 | RUN curl -fsSL https://getcomposer.org/installer | php \ 12 | && mv composer.phar /usr/local/bin/composer \ 13 | && composer global require phpunit/phpunit ^5.7 --no-progress --no-scripts --no-interaction 14 | 15 | RUN pecl install xdebug \ 16 | && echo 'zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so' > \ 17 | /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ 18 | && php -m | grep xdebug 19 | 20 | ENV PATH /root/.composer/vendor/bin:$PATH 21 | CMD ["phpunit"] 22 | -------------------------------------------------------------------------------- /php7.2-phpunit6/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.2-cli 2 | MAINTAINER Chris Allan 3 | ENV DEBIAN_FRONTEND noninteractive 4 | 5 | RUN apt-get update -yqq \ 6 | && apt-get install git zlib1g-dev libsqlite3-dev -y \ 7 | && docker-php-ext-install zip \ 8 | && docker-php-ext-install pdo_mysql \ 9 | && docker-php-ext-install pdo_sqlite 10 | 11 | RUN curl -fsSL https://getcomposer.org/installer | php \ 12 | && mv composer.phar /usr/local/bin/composer \ 13 | && composer global require phpunit/phpunit ^6.2 --no-progress --no-scripts --no-interaction 14 | 15 | RUN pecl install xdebug \ 16 | && echo 'zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so' > \ 17 | /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ 18 | && php -m | grep xdebug 19 | 20 | ENV PATH /root/.composer/vendor/bin:$PATH 21 | CMD ["phpunit"] 22 | -------------------------------------------------------------------------------- /php7.2-phpunit7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.2-cli 2 | MAINTAINER Chris Allan 3 | ENV DEBIAN_FRONTEND noninteractive 4 | 5 | RUN apt-get update -yqq \ 6 | && apt-get install git zlib1g-dev libsqlite3-dev -y \ 7 | && docker-php-ext-install zip \ 8 | && docker-php-ext-install pdo_mysql \ 9 | && docker-php-ext-install pdo_sqlite 10 | 11 | RUN curl -fsSL https://getcomposer.org/installer | php \ 12 | && mv composer.phar /usr/local/bin/composer \ 13 | && composer global require phpunit/phpunit ^7.0 --no-progress --no-scripts --no-interaction 14 | 15 | RUN pecl install xdebug \ 16 | && echo 'zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so' > \ 17 | /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ 18 | && php -m | grep xdebug 19 | 20 | ENV PATH /root/.composer/vendor/bin:$PATH 21 | CMD ["phpunit"] 22 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016-2017 Christopher Allan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PHP7.X - PHPUNIT Docker 2 | 3 | A series of docker files with different things for working with Composer, PHPUnit, XDebug (where available), 4 | Sqlite3, and MySQL to make CI/CD a little easier. 5 | 6 | Intended for usage in a CI environment (Travis, Gitlab, Drone, etc.): 7 | - PHP7 (based off the [official](https://hub.docker.com/_/php/) PHP Docker) 8 | - XDebug (Latest through PECL, only for 7.0, 7.1, and 7.2) 9 | - Composer (Latest through installer) 10 | - PHPUnit (5.x, 6.x, and 7.x depending on docker tags, through composer) 11 | 12 | The docker hub page can be found here: 13 | [epcallan/php7-testing-phpunit](https://hub.docker.com/r/epcallan/php7-testing-phpunit/) 14 | 15 | ## Tags And Options 16 | 17 | - `7.2-phpunit7`: PHP7.2, PHPUnit 7.x, XDebug 18 | - `7.2-phpunit6`: PHP7.2, PHPUnit 6.x, XDebug 19 | - `7.2-phpunit5`: PHP7.2, PHPUnit 5.x, XDebug 20 | - `7.1-phpunit7`: PHP7.1, PHPUnit 7.x, XDebug 21 | - `7.1-phpunit6`: PHP7.1, PHPUnit 6.x, XDebug 22 | - `7.1-phpunit5`: PHP7.1, PHPUnit 5.x, XDebug 23 | - `7.0-phpunit6`: PHP7.0, PHPUnit 6.x, XDebug 24 | - `7.0-phpunit5`: PHP7.0, PHPUnit 5.x, XDebug 25 | 26 | ## Usage 27 | 28 | ### Command Line 29 | ``` 30 | docker pull epcallan/php7-testing-phpunit:7.1-phpunit5 31 | ``` 32 | 33 | ### Drone 34 | ``` 35 | build: 36 | image: epcallan/php7-testing-phpunit:7.1-phpunit5 37 | commands: 38 | - composer install 39 | - phpunit 40 | ``` 41 | 42 | ### Gitlab 43 | ``` 44 | image: epcallan/php7-testing-phpunit:7.1-phpunit5 45 | 46 | before_script: 47 | - composer install 48 | 49 | in_docker: 50 | stage: test 51 | script: 52 | - phpunit 53 | only: 54 | - master 55 | ``` 56 | 57 | ## Building Additions Yourself 58 | 59 | If you want to add Postgres or ODBC or another PHP extension to the mix, simply clone this repository and add the additions into any of the `Dockerfile`'s and then build them (for example: `docker build php7.1-phpunit6`). 60 | 61 | If you'd like to see this enable a basic extension, feel free to submit an issue. 62 | 63 | ## Copyright 64 | 65 | MIT Licensed. For complete license, see `LICENSE` 66 | --------------------------------------------------------------------------------