New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

docker-scan

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

docker-scan

Scan filesystem directory for Dockerfiles and create metadata output.

latest
Source
npmnpm
Version
1.1.0
Version published
Maintainers
1
Created
Source

Docker Scan 💾

This is a library to scan for docker images in a defined directory and associate them to (nested) groups 🔥.

npm version CI codecov

Table of Contents

Installation

npm install docker-scan --save

Specification

Image

An image is in most cases represented by a Dockerfile in a directory. In some cases the image is also described with some meta information by an image descriptor file (image.json). But the descriptor file can also be a replacement for the Dockerfile.

The scan result object has the following 5 base properties:

  • id The Identifier is a way to identify the image beside the name property.

  • name Like already mentioned in th description for the id property.

  • groupId The groupId is the directory name of the last group, if not otherwise specified with the id property in an image-group.json file.

  • path The path is the relative path on the host machine, with different path separators (windows: \\, linux: /) depending on the operating system.

  • virtualPath The virtualPath is a path only containing group ids and the own image id, seperated with /.

These properties can be extended by providing a image.json file in the same directory as the Dockerfile.

Group

A group has the same base properties as an image, expect of the groupId property. The only other difference is, that the descriptor file must be named image-group.json.

Usage

To demonstrate the usage of the package, the test data directory path (test/data) is used as scan path, to simplify how to replicate the code example and use it for an own use cases.

import {scanDirectory} from "docker-scan";

(async () => {
    // Provide a base directory path to scan
    const directoryPath = 'test/data';

    const scanResult = scanDirectory(directoryPath);

    console.log(scanResult);
});

Output

{
      "images": [
        {
          "id": "image",
          "name": "Cool image",
          "groupId": "group",
          "path": "group\\image",
          "virtualPath": "group/image"
        },
        {
          "id": "meta-id",
          "name": "MetaId",
          "groupId": "sub-sub-group",
          "path": "group\\undefined\\sub-sub-group\\image",
          "virtualPath": "group/sub-sub-group/meta-id"
        },
        {
          "id": "image",
          "name": "image",
          "groupId": null,
          "path": "image",
          "virtualPath": "image"
        }
      ],
      "groups": [
          {
              "name": "Group",
              "license": "MIT",
              "id": "group",
              "virtualPath": "group",
              "path": "group"
          },
          {
              "name": "SubGroup",
              "id": "sub-group",
              "virtualPath": "group/sub-group",
              "path": "group\\sub-group"
          },
          {
              "name": "SubSubGroup",
              "id": "sub-sub-group",
              "virtualPath": "group/sub-sub-group",
              "path": "group\\undefined\\sub-sub-group"
          }
      ]
    }

The above output was captured on a Windows machine. Therefore, the path values are seperated with \\ instead of a / like on a linux machine.

Keywords

docker

FAQs

Package last updated on 01 Jun 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts