Docker Image

VIVIDUS Docker images are built and pushed to Docker Hub. The image includes Java runtime, VIVIDUS core and all VIVIDUS plugins, so it’s all-in-one solution. The Docker image enables easier extension of CI/CD pipelines with VIVIDUS-based tests. The appliance is not limited to CI/CD and the image can be used to run tests locally or anywhere else, however it could be less convenient in comparison with regular Gradle task or IDE.

How to run the tests

  1. Assuming there is a project containing VIVIDUS-based tests (e.g. VIVIDUS Starter)

  2. Go to the project root directory

    cd vividus-starter
  3. Create a new directory or choose any existing directory at any location, this directory is going to be used to store the test logs and the report.

    mkdir results
  4. Run the tests in the container

    The version of VIVIDUS used in the project (see build.gradle file) and the version of the Docker image must be the same.
    docker run --rm --mount source="$(pwd)/src/main/resources",target=/vividus/resources,type=bind --mount source="$(pwd)/results",target=/vividus/output,type=bind vividus/vividus:0.6.14
  5. Wait for the tests completion

  6. Find the test execution artifacts in the results folder chosen at step 2.

VIVIDUS Docker image includes:

  • Java runtime environment

  • All VIVIDUS plugins

  • Database connectors for the following databases:

  • mysql-connector-j (MySQL)

  • mssql-jdbc (Microsoft SQL Server, Azure SQL)

  • postgresql (PostgreSQL)

  • ojdbc10 (Oracle Database)

  • db2jcc (DB2)

  • csvjdbc (CSV)

  • h2 (H2)

  • snowflake-jdbc (Snowflake)

VIVIDUS Docker image doesn’t contain any browsers.

How to build an image with tests and publish it to Docker registry

The image is built using the VIVIDUS docker image as its base, and its version aligns with the version of VIVIDUS used in the project. The final image name is derived from the project name, and the image tag reflects the version of the tests.

It’s advisible to use release versions of VIVIDUS in your project when building images with tests as the previously pulled snapshot version of VIVIDUS docker image used as a base image may differ from the latest snapshot version of VIVIDUS docker image available on Docker Hub.

The building and publishing process is configured using environment variables or project properties, please note the configuration defined using environment variables takes precedence over the configuration defined using project properties.

Environment variable Project property Required

Description

DOCKER_REGISTRY_URL

docker.registry-url

false

The URL of Docker registry to publish image to

DOCKER_REPOSITORY_PATH

docker.repository-path

true

For Docker Hub the repository path is the Docker Hub username For private docker registries the repository path should follow <registry host>/<repository name> pattern e.g. myapps.jfrog.io/tests-docker-release

DOCKER_REGISTRY_USERNAME

false

The docker registry username, if it’s set, the password must be specified as well

DOCKER_REGISTRY_PASSWORD

  1. Assuming there is a project containing VIVIDUS-based tests (e.g. VIVIDUS Starter)

  2. Go to the project root directory

    cd vividus-starter
  3. Build and publish docker image with tests to docker registry

    ./gradlew pushTestsImage
  4. Optionally run the tests from the docker image

    docker run --rm --mount source="<directory to store test results>",target=/vividus/output,type=bind <image name>