Docker images with everything you'll need to build and test PHP applications on Gitlab Continous Integration (or any other CI plataform!)
Based on Official PHP images
7
,7.2
,latest
(7.2/Dockerfile) -7.2-alpine
(7.2/alpine/Dockerfile) -7.2-fpm
,fpm
(7.2/fpm/Dockerfile) -7.1
(7.1/Dockerfile) -7.1-alpine
(7.1/alpine/Dockerfile) -7.1-fpm
(7.1/fpm/Dockerfile) -7.0
(7.0/Dockerfile) -7.0-alpine
(7.0/alpine/Dockerfile) -7.0-fpm
(7.0/fpm/Dockerfile) -5.6
(5.6/Dockerfile) -5.6-fpm
(5.6/fpm/Dockerfile) -
All versions come with Node 9, Composer and Yarn
These images come with PHP (with all laravel required extensions), Composer (with hirak/prestissimo to speed up), Node and Yarn.
Everything you need to test Laravel projects :D
Laravel test examples
# Variables
variables:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: homestead
MYSQL_PASSWORD: secret
MYSQL_DATABASE: homestead
DB_HOST: mysql
test:
stage: test
services:
- mysql:5.7
image: edbizarro/gitlab-ci-pipeline-php:7.2-alpine
script:
- yarn
- composer install --prefer-dist --no-ansi --no-interaction --no-progress --no-scripts
- cp .env.example .env
- php artisan key:generate
- php artisan migrate:refresh --seed
- ./vendor/phpunit/phpunit/phpunit -v --coverage-text --colors=never --stderr
stages:
- test
- deploy
# Variables
variables:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: homestead
MYSQL_PASSWORD: secret
MYSQL_DATABASE: homestead
DB_HOST: mysql
# Speed up builds
cache:
key: $CI_BUILD_REF_NAME # changed to $CI_COMMIT_REF_NAME in Gitlab 9.x
paths:
- vendor
- node_modules
- public
- .yarn
test:
stage: test
services:
- mysql:5.7
image: edbizarro/gitlab-ci-pipeline-php:7.2-alpine
script:
- sudo yarn config set cache-folder .yarn
- yarn install --pure-lockfile
- composer install --prefer-dist --no-ansi --no-interaction --no-progress --no-scripts
- cp .env.example .env
- php artisan key:generate
- php artisan migrate:refresh --seed
- ./vendor/phpunit/phpunit/phpunit -v --coverage-text --colors=never --stderr
artifacts:
paths:
- ./storage/logs # for debugging
expire_in: 1 days
when: always
deploy:
stage: deploy
image: edbizarro/gitlab-ci-pipeline-php:7.1
script:
- echo "Deploy all the things!"
only:
- master
when: on_success
Recommended
Special thanks to Ambientum, an incredible Brazilian project, for the inspiration.
Also https://github.com/Chialab/docker-php for php 7.2 build scripts