MyShaarli/doc/md/Unit-tests-Docker.md
VirtualTam d691604080 docker: add alpine,debian,ubuntu test images
Relates to https://github.com/shaarli/Shaarli/issues/843

Added:
- Makefile target to run commands in a Docker test context
- Docker images to run Shaarli test suites:
  - Alpine 3.6
  - Debian 8
  - Debian 9
  - Ubuntu 16.04
- Documentation

Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2017-09-18 21:13:59 +02:00

1.6 KiB

Running tests inside Docker containers

Read first:

Docker test images

Test Dockerfiles are located under docker/tests/<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:

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 to so tests are run using a standard Linux user account (running tests as root would 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 docker/test/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