Generating Dockerfile from JSON and generate JSON document from a Dockerfile.
The main goal of this package is to support a Dockfile generation from Javascript. You are able to use all keyword from a Dockerfile reference.
Dockerfile reference is HERE.
- Update dependencies
You can find all Release Notes HERE.
var generator = require('dockerfile-generator')
let result = await generator.generateDockerFile(inputJson)
// Result is a generated Dockerfile.
let generateResult = generator.generateDockerFileFromArray(inputArray)
// Result is a generated Dockerfile.
let convertedJSON = generator.convertToJSON(inputDockerFile)
// Result is a generated JSON from Dockerfile.
let genereratedIgnore = await generator.generateIgnoreFile(ignoredElementsArray)
// generatedIgnore is a generated dockerignore file
{
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" ]
}
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"]
[
{
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" ]
}
]
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"]
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"]
{
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" ]
}
['node_modules','.git']
node_modules
.git
Copyright (c) 2015 Tibor Udvari. Released under the MIT license. See LICENSE for details.