# dockerfile-parse

> Parse a Dockerfile into a POJO

Latest version **0.2.0** (published 2016-04-21) · MIT license · 0 weekly downloads

## Install

```sh
npm install dockerfile-parse
pnpm add dockerfile-parse
yarn add dockerfile-parse
bun add dockerfile-parse
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.2.0 |
| Published | 2016-04-21 |
| First published | 2014-05-02 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 14 |
| Author | Kai Davenport |
| Maintainers | binocarlos |
| Keywords | docker, dockerfile, parse |

## Links

- npm: https://www.npmjs.com/package/dockerfile-parse
- Repository: https://github.com/binocarlos/dockerfile-parse
- Issues: https://github.com/binocarlos/dockerfile-parse/issues
- npm.io page: https://npm.io/package/dockerfile-parse

## Alternatives

- [babylon](https://npm.io/package/babylon.md) — 5.1M weekly downloads
- [csscolorparser](https://npm.io/package/csscolorparser.md) — 3.7M weekly downloads
- [expr-eval-fork](https://npm.io/package/expr-eval-fork.md) — 1.5M weekly downloads
- [@leeoniya/ufuzzy](https://npm.io/package/@leeoniya/ufuzzy.md) — 247.7K weekly downloads
- [xml-parser](https://npm.io/package/xml-parser.md) — 78.4K weekly downloads

## Recent versions

- 0.2.0 (latest) — 2016-04-21
- 0.1.1 — 2015-09-10
- 0.1.0 — 2015-09-02
- 0.0.3 — 2014-05-14
- 0.0.2 — 2014-05-02
- 0.0.1 — 2014-05-02

## README

dockerfile-parse
================

[![Travis](http://img.shields.io/travis/binocarlos/dockerfile-parse.svg?style=flat)](https://travis-ci.org/binocarlos/dockerfile-parse)

Parse a Dockerfile into a POJO

## install

```
$ npm install dockerfile-parse
```

## usage

Take this Dockerfile for example:

```
FROM quarry/monnode
ADD . /srv/app
RUN cd /srv/app && npm install
RUN cd /srv/app && make build
WORKDIR /srv/app
VOLUME /srv/data
ADD /my/source /src/dest
EXPOSE 80
EXPOSE 9989
VOLUME /srv/data2
RUN cd /srv/app && make build2
ENTRYPOINT node index.js
```

Lets parse it into a JavaScript object to see what it says:

```js
var fs = require('fs')
var parse = require('docker')

var dockerFile = fs.readFileSync(__dirname + '/Dockerfile', 'utf8')
var pojo = parse(dockerFile)

console.dir(pojo)

/*

{
	from:'quarry/monnode',
	workdir:'/srv/app',
	entrypoint:'node index.js',
	add:[{
		source:'.',
		dest:'/srv/app'
	}, {
		source:'/my/source',
		dest:'/src/dest'
	}],
	expose:[80, 9989],
	volume:['/srv/data', '/srv/data2'],
	run:[
		'cd /srv/app && npm install',
		'cd /srv/app && make build',
		'cd /srv/app && make build2'
	]
}
	
*/
```

## api

### `var pojo = parse(dockerFileString)`

Return a parsed version of the string that is a Dockerfile contents.

The pojo will have array fields for the following statements:

 * add -> {source:'', dest:''}
 * expose
 * volume
 * run

## license

MIT

---
_Source: https://npm.io/package/dockerfile-parse · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
