Skip to content
/ purser Public

Automatic vulnerability scans of all container images used on a host

License

Notifications You must be signed in to change notification settings

csmith/purser

Repository files navigation

Purser

Purser runs periodic vulnerability scans on all container images that are in use on a host. It lists running containers via the Docker API, then scans each distinct image using Trivy. Aggregated details are then written to a HTML report.

Usage

Purser is designed to run as a container itself. It requires a directory in which to cache vulnerability database files, access to the host's docker socket (for listing containers and reading images), and a directory to output the reports.

A simple docker compose file is below.

services:
  purser:
    image: ghcr.io/csmith/purser
    restart: unless-stopped
    user: '0' # or some other uid with access to the docker socket
    volumes:
      - cache:/data/cache
      - output:/data/output
      - /var/run/docker.sock:/var/run/docker.sock

volumes:
  cache:
  output:

In production enviroments you may want to use a proxy like dsp to limit purser to read-only requests, and allow it to run as a regular user.

Options

Purser options should be specified as environment vars. The following options are available:

Option Description Default
SCAN_PERIOD How often to scan containers for vulnerabilities 12h
OUTPUT_DIR Directory to write reports to /data/output/ (docker) .data/output/ (otherwise)
CACHE_DIR Directory to cache vulnerability databases in /data/cache/ (docker) .data/cache/ (otherwise)
SWARM Whether to try and scan all images used in Docker Swarm false
LOG_LEVEL Minimum log level to output INFO
LOG_FORMAT Format of log output (TEXT or JSON) TEXT
DOCKER_HOST URL to access the Docker API -

About

Automatic vulnerability scans of all container images used on a host

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages