turkdevops / snyk

CLI and build-time tool to find & fix known vulnerabilities in open-source dependencies
https://snyk.io
Other
1 stars 2 forks source link

Documentation | Test your project

Snyk helps you find, fix and monitor known vulnerabilities in open source

Known Vulnerabilities Monthly Downloads


What is Snyk?

What is Snyk?

Table Of Contents:

Installation

  1. Install the Snyk utility using npm install -g snyk.
  2. Once installed you will need to authenticate with your Snyk account: snyk auth

For more detail on how to authenticate take a look at the CLI authentication section of the Snyk documentation.

CLI

snyk [options] [command] [package]

Run snyk --help to get a quick overview of all commands or for full details on the CLI read the snyk.io CLI docs.

The package argument is optional. If no package is given, Snyk will run the command against the current working directory allowing you to test your non-public applications.

Features

Snyk CLI Docker images

See all snyk/snyk-cli images

Snyk is also provided as a set of Docker images that carry the runtime environment of each package manager. For example, the npm image will carry all of the needed setup to run npm install on the currently running container. Currently there are images for npm, Ruby, Maven, Gradle and SBT.

The images can perform snyk test by default on the specified project which is mounted to the container as a read/write volume, and snyk monitor if the MONITOR environment variable is set when running the docker container. If you want an HTML report for test command (--json is appended automatically). An HTML file called snyk_report.html and a CSS file called snyk_report.css will be generated. The image also writes a file called snyk-res.json for internal use and snyk-error.log for errors that we can look at if something goes wrong.

The following environment variables can be used when running the container on docker:

Docker images are tagged according to the package manager runtime they include, the package manager version and snyk version. The general format of tags is [snyk-version]-[package-manager]-[package-manager-version] or just [package-manager]-[package-manager-version] if we want to use the latest version of snyk. Please see available tags to see the available options.

[snyk-version] - The version of snyk that is installed in the image, if version is omitted it will use the latest version. [package-manager] - One of the available package managers (e.g: npm, mvn, gradle, etc...). [package-manager-version] - The version of the package manager that is installed inside the image.

Please see the following examples on how to run Snyk inside docker:

Node.js (npm)

See all snyk/snyk-cli npm images

The host project folder will be mounted to /project on the container and will be used to read the dependencies file and write results for CI builds.

Here's an example of running snyk test and snyk monitor in the image (with the latest version of Snyk) for npm:

docker run -it
    -e "SNYK_TOKEN=<TOKEN>"
    -e "USER_ID=1234"
    -e "MONITOR=true"
    -v "<PROJECT_DIRECTORY>:/project"
  snyk/snyk-cli:npm test --org=my-org-name

RubyGems

See all snyk/snyk-cli rubygems images

The host project folder will be mounted to /project on the container and will be used to read the dependencies file and write results for CI builds.

Here's an example of running snyk test and snyk monitor in the image (with the latest version of Snyk) for RubyGems:

docker run -it
    -e "SNYK_TOKEN=<TOKEN>"
    -e "USER_ID=1234"
    -e "MONITOR=true"
    -v "<PROJECT_DIRECTORY>:/project"
  snyk/snyk-cli:rubygems test --org=my-org-name

Maven 3.5.4

See all snyk/snyk-cli maven images

The host project folder will be mounted to /project on the container and will be used to read the dependencies file and write results for CI builds. You may also need to mount the local .m2 and .ivy2 folders.

Here's an example of running snyk test and snyk monitor in the image (with the latest version of Snyk) for Maven:

docker run -it
    -e "SNYK_TOKEN=<TOKEN>"
    -e "USER_ID=1234"
    -e "MONITOR=true"
    -v "<PROJECT_DIRECTORY>:/project"
    -v "/home/user/.m2:/home/node/.m2"
    -v "/home/user/.ivy2:/home/node/.ivy2"
  snyk/snyk-cli:maven-3.5.4 test --org=my-org-name

SBT 0.13.16 / SBT 1.0.4

See all snyk/snyk-cli sbt images

The host project folder will be mounted to /project on the container and will be used to read the dependencies file and write results for CI builds. You may also need to mount the local .m2 and .ivy2 folders.

Here are examples of running snyk test and snyk monitor in the image (with the latest version of Snyk) for SBT:

Note: the dependency-tree or sbt-dependency-graph or sbt-coursier (included by default in latest sbt versions) module is required for snyk to process Scala projects.

docker run -it
    -e "SNYK_TOKEN=<TOKEN>"
    -e "USER_ID=1234"
    -e "MONITOR=true"
    -v "<PROJECT_DIRECTORY>:/project"
    -v "/home/user/.m2:/home/node/.m2"
    -v "/home/user/.ivy2:/home/node/.ivy2"
  snyk/snyk-cli:sbt-0.13.16 test --org=my-org-name
docker run -it
    -e "SNYK_TOKEN=<TOKEN>"
    -e "USER_ID=1234"
    -e "MONITOR=true"
    -v "<PROJECT_DIRECTORY>:/project"
    -v "/home/user/.m2:/home/node/.m2"
    -v "/home/user/.ivy2:/home/node/.ivy2"
  snyk/snyk-cli:sbt-1.0.4 test --org=my-org-name

Gradle 2.8 / Gradle 4.4 / Gradle 5.4

See all snyk/snyk-cli gradle images

The host project folder will be mounted to /project on the container and will be used to read the dependencies file and write results for CI builds. You may also need to mount the local .gradle.

Here's an example of running snyk test and snyk monitor in the image (with the latest version of Snyk) for Gradle:

docker run -it
    -e "SNYK_TOKEN=<TOKEN>"
    -e "USER_ID=1234"
    -e "MONITOR=true"
    -v "<PROJECT_DIRECTORY>:/project"
    -v "/home/user/.gradle:/home/node/.gradle"
  snyk/snyk-cli:gradle-2.8 test --org=my-org-name
docker run -it
    -e "SNYK_TOKEN=<TOKEN>"
    -e "USER_ID=1234"
    -e "MONITOR=true"
    -v "<PROJECT_DIRECTORY>:/project"
    -v "/home/user/.gradle:/home/node/.gradle"
  snyk/snyk-cli:gradle-4.4 test --org=my-org-name
docker run -it
    -e "SNYK_TOKEN=<TOKEN>"
    -e "USER_ID=1234"
    -e "MONITOR=true"
    -v "<PROJECT_DIRECTORY>:/project"
    -v "/home/user/.gradle:/home/node/.gradle"
  snyk/snyk-cli:gradle-5.4 test --org=my-org-name

Docker

See all snyk/snyk-cli docker images

The host project folder will be mounted to /project on the container and will be used to read the dependencies file and write results for CI builds.

The image being tested is expected to be available locally.

Here's an example of running snyk test and snyk monitor in the image (with the latest version of Snyk) for Docker:

docker run -it
    -e "SNYK_TOKEN=<TOKEN>"
    -e "USER_ID=1234"
    -e "MONITOR=true"
    -v "<PROJECT_DIRECTORY>:/project"
    -v "/var/run/docker.sock:/var/run/docker.sock"
  snyk/snyk-cli:docker test --docker myapp:mytag --file=<DOCKERFILE>

Python 2 / Python 3

See all snyk/snyk-cli python images

The host project folder will be mounted to /project on the container and will be used to read the dependencies file and write results for CI builds.

Here's an example of running snyk test and snyk monitor in the image (with the latest version of Snyk) for Maven:

docker run -it
    -e "SNYK_TOKEN=<TOKEN>"
    -e "USER_ID=1234"
    -e "MONITOR=true"
    -e "TARGET_FILE=requirement-dev.txt"
    -v "<PROJECT_DIRECTORY>:/project"
  snyk/snyk-cli:python-3 test --org=my-org-name

Badge

Make users feel more confident in using your website by adding your Snyk badge!

Known Vulnerabilities

[![Known Vulnerabilities](https://snyk.io/package/npm/snyk/badge.svg)](https://snyk.io/package/npm/snyk)

Analytics