docker-compose-parser

0.0.3 • Public • Published

Docker Compose YAML Parser

Parse and edit docker-compose.yaml file using easy to use methods.


Installation

npm install docker-compose-parser --save

Usage

Parsing

  • Parsing a docker-compose.yml file
  • Parsing docker compose file string
  • Parsing docker compose file object

🔥 Parsing a docker-compose.yml file

import Parser from 'docker-compose-parser'

// create Parser instance
const compose = new Parser("./path/to/docker-compose.yml");

// Make modifications
compose.getService().getImage().setName('test').setTag('1.2.3')

// Write to file
compose.writeToFile("./output/docker-compose.yml");

🔥 Parsing a docker compose String

import Parser from 'docker-compose-parser'

// Retrieve docker compose file from somewhere
const response = fetch('https://example.com/path/to/docker-compose.yml')
const dockerComposeYaml = await response.text();

// create Parser instance from string
const compose = Parser.parse(dockerComposeYaml);

🔥 Parsing an existing docker compose Object

import Parser from 'docker-compose-parser'

// Retrieve docker compose file from somewhere
const dockerComposeObj = {
    services:
        web: {
            image: 'httpd:2.4.57',
            restart: 'unless-stopped',
            ports: [
                {
                    target: 80,
                    published: 80,
                    protocol: 'tcp'
                }
            ]
        }
}

// create Parser instance from string
const compose = Parser.parse(dockerComposeObj);

Modifying

To be added

Saving

🔥 Get the final resulting docker compose object

// create Parser instance
const compose = new Parser("./path/to/docker-compose.yml");

// Make modifications
compose.getService().getImage().setName('test').setTag('1.2.3')

// get resulting object
console.log(compose.json())

// Output:
/*
    {
        services: {
            web: { 
                image: 'test:1.2.3',
                restart: 'unless-stopped', 
                ports: [Array] 
            }
        }
    }
*/

console.log(JSON.stringify(compose.json()))

// Output:
/*
     {"services":{"web":{"image":"test:1.2.3","restart":"unless-stopped","ports":[{"target":80,"published":80,"protocol":"tcp"}]}}}
*/

🔥 Get the final resulting docker compose YAML string

// create Parser instance
const compose = new Parser("./path/to/docker-compose.yml");

// Make modifications
compose.getService().getImage().setName('test').setTag('1.2.3')

// get resulting YAML string
console.log(compose.text())

// Output:
/*
    services:
        web:
            image: test:1.2.3
            restart: unless-stopped
            ports:
            - target: 80
                published: 80
                protocol: tcp
*/

🔥 Writing to docker-compose.yml file

// create Parser instance
const compose = new Parser("./path/to/docker-compose.yml");

// Make modifications
compose.getService().getImage().setName('test').setTag('1.2.3')

// Writing to file
compose.writeToFile('dist/docker-compose.yaml')

Package Sidebar

Install

npm i docker-compose-parser

Weekly Downloads

3

Version

0.0.3

License

MIT

Unpacked Size

10.8 kB

Total Files

9

Last publish

Collaborators

  • wisdomsky