User-defined custom images for CLI
Context for user-defined custom images for CLI
Following Snyk announcements regarding Snyk CLI Images and Snyk Images, Snyk is providing instructions that customers will find useful in building their own custom images. You can visit the Snyk Images build tool chain on GitHub for a list of currently supported images.
Snyk does not build or maintain images that contain end-of-life software by an upstream vendor. The list of unsupported images is available on the GitHub repo.
Using custom images will allow you to extend environment support to any environment supported by the Snyk CLI.
Requirements for user-defined custom images for CLI
In order for your custom image to be supported, it must:
Use an environment supported by the Snyk CLI
Use a language and framework supported by Snyk
Have Snyk CLI installed on the image; see Install or update the Snyk CLI for steps to install the CLI
Be publicly accessible; the integration will pull the image.
Use of user-defined custom images for CLI
Providing a custom image gives you more control over your environment. For example, unless you use custom images, you cannot use an environment with Node LTS.
Example: How to create a custom image using Dockerfile for Node LTS support
Given the base requirements, you can create a custom image to use Node LTS with the following Dockerfile:
The base image uses Alpine to keep things lightweight. You have installed Node and the Snyk CLI; this satisfies three-quarters of the requirements.
After the Dockerfile is defined, you can build and tag the image using docker build and push the image using docker push:
Example: how to use a custom image in a BitBucket pipeline
Compatibility in the BitBucket Pipeline integration is limited to environments supported by the Docker container the integration runs in. Following the Snyk announcement Decoupling Snyk Scan from Snyk CLI Docker Images, before v1.0.0, the experience was limited to environments supported by the Snyk CLI Docker Images.
With the release of v1.0.0, users can define custom images. If the list of environments provided by the LANGUAGE variable does not support your particular build environment, you can define your own build environment in the form of a custom Docker image.
Ensure that the Prerequisites for Bitbucket Pipelines integration are met.
As long as the pushed image is publicly accessible, you can use the SNYK_BASE_IMAGE
and LANGUAGE
variables to reference your custom image and tag, respectively, in your Bitbucket pipeline:
Last updated