Launch Week Day 2: Introducing Reports: An Extensible Reporting Framework for Socket Data.Learn More
Socket
Book a DemoSign in
Socket

dockerfile-generator

Package Overview
Dependencies
Maintainers
1
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dockerfile-generator

Dockerfile generator for NodeJS

latest
Source
npmnpm
Version
5.0.5
Version published
Weekly downloads
421
65.1%
Maintainers
1
Weekly downloads
 
Created
Source

dockerfile-generator

Generating Dockerfile from JSON and generate JSON document from a Dockerfile.

Node.js CI npm version

Latest release note

Version 5.0.5 (14.03.2026)

  • Update dependencies
  • Migrate tests from mocha to jest

Version 5.0.4 (21.12.2025)

  • Update dependencies

Version 5.0.3 (28.10.2024)

  • Update dependencies

Release notes of previous versions: Release notes.

Installation

npm install dockerfile-generator

How to use the library

You can find here the reference doc: References.

const generator = require('dockerfile-generator')

const result = await generator.generateDockerFile(inputJson)
// Result is a generated Dockerfile.

const generateResult = generator.generateDockerFileFromArray(inputArray)
// Result is a generated Dockerfile.

const convertedJSON = generator.convertToJSON(inputDockerFile)
// Result is a generated JSON from Dockerfile.

const genereratedIgnore = await generator.generateIgnoreFile(ignoredElementsArray)
// generatedIgnore is a generated dockerignore file

Examples

Example for Dockerfile Generation JSON Input ( generateDockerFile function )
Input
    {
      "from": "nginx:latest",
      "run": [ "adduser", "--disabled-password", "-gecos", "", "testuser" ],
      "volumes": [ "/home/testuser/app" ],
      "user": "testuser",
      "working_dir": "/home/testuser/app",
      "labels": {
        "name": "value"
      },
      "env": {
        "env1": "value1",
        "env2": "value2"
      },
      "add": {
        "test.run" : "/home/testuser/app/test.run"
      },
      "copy":  {
        "test.cmd" : "/home/testuser/app/test.cmd"
      },
      "entrypoint": "tail",
      "cmd": ["-f", "/dev/null"],
      "expose": ["80/tcp"],
      "args": [ "value1", "value2"],
      "stopsignal": "stop",
      "shell": [ "/bin/bash", "-c", "echo", "hello" ],
      "comment": "This is a comment"
    }
Output
FROM nginx:latest
RUN [ "adduser", "--disabled-password", "-gecos", "", "testuser" ]
VOLUME /home/testuser/app
USER testuser
WORKDIR /home/testuser/app
LABEL name=value
ENV env1=value1
ENV env2=value2
ADD test.run /home/testuser/app/test.run
COPY test.cmd /home/testuser/app/test.cmd
ENTRYPOINT [ "tail" ]
CMD [ "-f", "/dev/null" ]
EXPOSE 80/tcp
ARG value1
ARG value2
STOPSIGNAL stop
SHELL [ "/bin/bash", "-c", "echo", "hello"]
# This is a comment
Example for Dockerfile Generation Array Input ( generateDockerFileFromArray function )
Input
  [
    {
      "from": "nginx:latest"
    },
     {
      "run": [ "adduser", "--disabled-password", "-gecos", "", "testuser" ]
    },
     {
      "volumes": [ "/home/testuser/app" ]
    },
     {
      "user": "testuser"
    },
     {
      "working_dir": "/home/testuser/app"
    },
     {  
      "labels": {
        "name": "value"
      }
    },
     {
      "env": {
        "env1": "value1",
        "env2": "value2"
      }
    },
     {
      "add": {
        "test.run" : "/home/testuser/app/test.run"
      }
    },
     {
      "copy":  {
        "test.cmd" : "/home/testuser/app/test.cmd"
      }
    },
    {  
      "entrypoint": "tail"
    },
    {
      "cmd": ["-f", "/dev/null"]
    },
    {
      "expose": ["80/tcp"]
    },
    {
      "args": [ "value1", "value2"]
    },
    {
      "stopsignal": "stop"
    },
    {
      "shell": [ "/bin/bash", "-c", "echo", "hello" ]
    },
  ]
Output
FROM nginx:latest
RUN [ "adduser", "--disabled-password", "-gecos", "", "testuser" ]
VOLUME /home/testuser/app
USER testuser
WORKDIR /home/testuser/app
LABEL name=value
ENV env1=value1
ENV env2=value2
ADD test.run /home/testuser/app/test.run
COPY test.cmd /home/testuser/app/test.cmd
ENTRYPOINT [ "tail" ]
CMD [ "-f", "/dev/null" ]
EXPOSE 80/tcp
ARG value1
ARG value2
STOPSIGNAL stop
SHELL [ "/bin/bash", "-c", "echo", "hello"]

Example for JSON Generation ( convertToJSON function )

Example Input
FROM nginx:latest
RUN [ "adduser", "--disabled-password", "-gecos", "", "testuser" ]
VOLUME /home/testuser/app
USER testuser
WORKDIR /home/testuser/app
LABEL name=value
ENV env1=value1
ENV env2=value2
ADD test.run /home/testuser/app/test.run
COPY test.cmd /home/testuser/app/test.cmd
ENTRYPOINT [ "tail" ]
CMD [ "-f", "/dev/null" ]
EXPOSE 80/tcp
ARG value1
ARG value2
STOPSIGNAL stop
SHELL [ "/bin/bash", "-c", "echo", "hello"]
# This is a comment
Example Output
    {
      "from": "nginx:latest",
      "run": [ "adduser", "--disabled-password", "-gecos", "", "testuser" ],
      "volumes": [ "/home/testuser/app" ],
      "user": "testuser",
      "working_dir": "/home/testuser/app",
      "labels": {
        "name": "value"
      },
      "env": {
        "env1": "value1",
        "env2": "value2"
      },
      "add": {
        "test.run" : "/home/testuser/app/test.run"
      },
      "copy":  {
        "test.cmd" : "/home/testuser/app/test.cmd"
      },
      "entrypoint": "tail",
      "cmd": ["-f", "/dev/null"],
      "expose": ["80/tcp"],
      "args": [ "value1", "value2"],
      "stopsignal": "stop",
      "shell": [ "/bin/bash", "-c", "echo", "hello" ],
      "comment_1": "This is a comment"
    }

Example for .dockerignore Generation ( generateIgnoreFile function )

Input
['node_modules','.git']
Output
node_modules
.git

License

Copyright (c) 2015 Tibor Udvari. Released under the MIT license. See LICENSE for details.

Keywords

dockerfile

FAQs

Package last updated on 14 Mar 2026

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