Running tests inside Docker containers
Read first:
Docker test images
Test Dockerfiles are located under tests/docker/<distribution>/Dockerfile,
and can be used to build Docker images to run Shaarli test suites under common
Linux environments.
Dockerfiles are provided for the following environments:
alpine36- Alpine 3.6debian8- Debian 8 Jessie (oldstable)debian9- Debian 9 Stretch (stable)ubuntu16- Ubuntu 16.04 Xenial Xerus (LTS)
What's behind the curtains:
- each image provides:
- a base Linux OS
 - Shaarli PHP dependencies (OS packages)
 - test PHP dependencies (OS packages)
 - Composer
 
 - the local workspace is mapped to the container's 
/shaarli/directory, - the files are rsync'd so tests are run using a standard Linux user account
  (running tests as 
rootwould bypass permission checks and may hide issues) - the tests are run inside the container.
 
Building test images
# build the Debian 9 Docker image
$ cd /path/to/shaarli
$ cd tests/docker/debian9
$ docker build -t shaarli-test:debian9 .
Running tests
$ cd /path/to/shaarli
# install/update 3rd-party test dependencies
$ composer install --prefer-dist
# run tests using the freshly built image
$ docker run -v $PWD:/shaarli shaarli-test:debian9 docker_test
# run the full test campaign
$ docker run -v $PWD:/shaarli shaarli-test:debian9 docker_all_tests