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

dockerize-app

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dockerize-app - npm Package Compare versions

Comparing version
1.0.2
to
1.1.0
+7
CHANGELOG.md
# Change Log
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## [1.1.0] - 2015-11-26
- Source code location in container changed to /usr/local/[app-name]
{
"name": "dockerize-app",
"version": "1.1.0",
"dependencies": {
"lodash-deep": {
"version": "1.6.0",
"from": "lodash-deep@>=1.6.0 <2.0.0",
"resolved": "https://registry.npmjs.org/lodash-deep/-/lodash-deep-1.6.0.tgz",
"dependencies": {
"lodash": {
"version": "3.10.1",
"from": "lodash@>=3.10.0 <4.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
}
}
},
"request-promise": {
"version": "1.0.2",
"from": "request-promise@>=1.0.2 <2.0.0",
"resolved": "https://registry.npmjs.org/request-promise/-/request-promise-1.0.2.tgz",
"dependencies": {
"bluebird": {
"version": "2.10.2",
"from": "bluebird@>=2.3.0 <3.0.0",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz"
},
"cls-bluebird": {
"version": "1.0.1",
"from": "cls-bluebird@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/cls-bluebird/-/cls-bluebird-1.0.1.tgz",
"dependencies": {
"shimmer": {
"version": "1.1.0",
"from": "shimmer@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.1.0.tgz"
}
}
},
"lodash": {
"version": "3.10.1",
"from": "lodash@>=3.10.0 <4.0.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
},
"request": {
"version": "2.67.0",
"from": "request@>=2.34.0 <3.0.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.67.0.tgz",
"dependencies": {
"bl": {
"version": "1.0.0",
"from": "bl@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz",
"dependencies": {
"readable-stream": {
"version": "2.0.4",
"from": "readable-stream@>=2.0.0 <2.1.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz",
"dependencies": {
"core-util-is": {
"version": "1.0.2",
"from": "core-util-is@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
},
"inherits": {
"version": "2.0.1",
"from": "inherits@>=2.0.1 <2.1.0",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
},
"isarray": {
"version": "0.0.1",
"from": "isarray@0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
},
"process-nextick-args": {
"version": "1.0.3",
"from": "process-nextick-args@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz"
},
"string_decoder": {
"version": "0.10.31",
"from": "string_decoder@>=0.10.0 <0.11.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
},
"util-deprecate": {
"version": "1.0.2",
"from": "util-deprecate@>=1.0.1 <1.1.0",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
}
}
}
}
},
"caseless": {
"version": "0.11.0",
"from": "caseless@>=0.11.0 <0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz"
},
"extend": {
"version": "3.0.0",
"from": "extend@>=3.0.0 <3.1.0",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz"
},
"forever-agent": {
"version": "0.6.1",
"from": "forever-agent@>=0.6.1 <0.7.0",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
},
"form-data": {
"version": "1.0.0-rc3",
"from": "form-data@>=1.0.0-rc3 <1.1.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz",
"dependencies": {
"async": {
"version": "1.5.0",
"from": "async@>=1.4.0 <2.0.0",
"resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz"
}
}
},
"json-stringify-safe": {
"version": "5.0.1",
"from": "json-stringify-safe@>=5.0.1 <5.1.0",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
},
"mime-types": {
"version": "2.1.7",
"from": "mime-types@>=2.1.7 <2.2.0",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz",
"dependencies": {
"mime-db": {
"version": "1.19.0",
"from": "mime-db@>=1.19.0 <1.20.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz"
}
}
},
"node-uuid": {
"version": "1.4.7",
"from": "node-uuid@>=1.4.7 <1.5.0",
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz"
},
"qs": {
"version": "5.2.0",
"from": "qs@>=5.2.0 <5.3.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz"
},
"tunnel-agent": {
"version": "0.4.1",
"from": "tunnel-agent@>=0.4.1 <0.5.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz"
},
"tough-cookie": {
"version": "2.2.1",
"from": "tough-cookie@>=2.2.0 <2.3.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz"
},
"http-signature": {
"version": "1.1.0",
"from": "http-signature@>=1.1.0 <1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.0.tgz",
"dependencies": {
"assert-plus": {
"version": "0.1.5",
"from": "assert-plus@>=0.1.5 <0.2.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz"
},
"jsprim": {
"version": "1.2.2",
"from": "jsprim@>=1.2.2 <2.0.0",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz",
"dependencies": {
"extsprintf": {
"version": "1.0.2",
"from": "extsprintf@1.0.2",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz"
},
"json-schema": {
"version": "0.2.2",
"from": "json-schema@0.2.2",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz"
},
"verror": {
"version": "1.3.6",
"from": "verror@1.3.6",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz"
}
}
},
"sshpk": {
"version": "1.7.0",
"from": "sshpk@>=1.7.0 <2.0.0",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.0.tgz",
"dependencies": {
"asn1": {
"version": "0.2.3",
"from": "asn1@>=0.2.3 <0.3.0",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz"
},
"assert-plus": {
"version": "0.2.0",
"from": "assert-plus@>=0.2.0 <0.3.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz"
},
"dashdash": {
"version": "1.10.1",
"from": "dashdash@>=1.10.1 <2.0.0",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.10.1.tgz",
"dependencies": {
"assert-plus": {
"version": "0.1.5",
"from": "assert-plus@>=0.1.0 <0.2.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz"
}
}
},
"jsbn": {
"version": "0.1.0",
"from": "jsbn@>=0.1.0 <0.2.0",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz"
},
"tweetnacl": {
"version": "0.13.2",
"from": "tweetnacl@>=0.13.0 <1.0.0",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.2.tgz"
},
"jodid25519": {
"version": "1.0.2",
"from": "jodid25519@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz"
},
"ecc-jsbn": {
"version": "0.1.1",
"from": "ecc-jsbn@>=0.0.1 <1.0.0",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz"
}
}
}
}
},
"oauth-sign": {
"version": "0.8.0",
"from": "oauth-sign@>=0.8.0 <0.9.0",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz"
},
"hawk": {
"version": "3.1.2",
"from": "hawk@>=3.1.0 <3.2.0",
"resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.2.tgz",
"dependencies": {
"hoek": {
"version": "2.16.3",
"from": "hoek@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
},
"boom": {
"version": "2.10.1",
"from": "boom@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"
},
"cryptiles": {
"version": "2.0.5",
"from": "cryptiles@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz"
},
"sntp": {
"version": "1.0.9",
"from": "sntp@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"
}
}
},
"aws-sign2": {
"version": "0.6.0",
"from": "aws-sign2@>=0.6.0 <0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz"
},
"stringstream": {
"version": "0.0.5",
"from": "stringstream@>=0.0.4 <0.1.0",
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz"
},
"combined-stream": {
"version": "1.0.5",
"from": "combined-stream@>=1.0.5 <1.1.0",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
"dependencies": {
"delayed-stream": {
"version": "1.0.0",
"from": "delayed-stream@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
}
}
},
"isstream": {
"version": "0.1.2",
"from": "isstream@>=0.1.2 <0.2.0",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
},
"is-typedarray": {
"version": "1.0.0",
"from": "is-typedarray@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
},
"har-validator": {
"version": "2.0.3",
"from": "har-validator@>=2.0.2 <2.1.0",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.3.tgz",
"dependencies": {
"chalk": {
"version": "1.1.1",
"from": "chalk@>=1.1.1 <2.0.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz",
"dependencies": {
"ansi-styles": {
"version": "2.1.0",
"from": "ansi-styles@>=2.1.0 <3.0.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz"
},
"escape-string-regexp": {
"version": "1.0.3",
"from": "escape-string-regexp@>=1.0.2 <2.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz"
},
"has-ansi": {
"version": "2.0.0",
"from": "has-ansi@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"dependencies": {
"ansi-regex": {
"version": "2.0.0",
"from": "ansi-regex@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz"
}
}
},
"strip-ansi": {
"version": "3.0.0",
"from": "strip-ansi@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz",
"dependencies": {
"ansi-regex": {
"version": "2.0.0",
"from": "ansi-regex@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz"
}
}
},
"supports-color": {
"version": "2.0.0",
"from": "supports-color@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
}
}
},
"commander": {
"version": "2.9.0",
"from": "commander@>=2.9.0 <3.0.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
"dependencies": {
"graceful-readlink": {
"version": "1.0.1",
"from": "graceful-readlink@>=1.0.0",
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
}
}
},
"is-my-json-valid": {
"version": "2.12.3",
"from": "is-my-json-valid@>=2.12.3 <3.0.0",
"resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.3.tgz",
"dependencies": {
"generate-function": {
"version": "2.0.0",
"from": "generate-function@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz"
},
"generate-object-property": {
"version": "1.2.0",
"from": "generate-object-property@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
"dependencies": {
"is-property": {
"version": "1.0.2",
"from": "is-property@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz"
}
}
},
"jsonpointer": {
"version": "2.0.0",
"from": "jsonpointer@2.0.0",
"resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz"
},
"xtend": {
"version": "4.0.1",
"from": "xtend@>=4.0.0 <5.0.0",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
}
}
},
"pinkie-promise": {
"version": "2.0.0",
"from": "pinkie-promise@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz",
"dependencies": {
"pinkie": {
"version": "2.0.1",
"from": "pinkie@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.1.tgz"
}
}
}
}
}
}
},
"continuation-local-storage": {
"version": "3.1.4",
"from": "continuation-local-storage@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.1.4.tgz",
"dependencies": {
"async-listener": {
"version": "0.5.6",
"from": "async-listener@>=0.5.0 <0.6.0",
"resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.5.6.tgz",
"dependencies": {
"shimmer": {
"version": "1.0.0",
"from": "shimmer@1.0.0",
"resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.0.0.tgz"
}
}
},
"emitter-listener": {
"version": "1.0.1",
"from": "emitter-listener@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.0.1.tgz",
"dependencies": {
"shimmer": {
"version": "1.0.0",
"from": "shimmer@1.0.0",
"resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.0.0.tgz"
}
}
}
}
}
}
}
}
}
+2
-2

@@ -47,4 +47,4 @@ 'use strict';

return `FROM node:${version}${os.EOL}`
+ `COPY . /usr/${packageJson.name}${os.EOL}`
+ `WORKDIR /usr/${packageJson.name}${os.EOL}`
+ `COPY . /usr/local/${packageJson.name}${os.EOL}`
+ `WORKDIR /usr/local/${packageJson.name}${os.EOL}`
+ `RUN npm install${os.EOL}`

@@ -51,0 +51,0 @@ + `CMD ${runCmd}`;

{
"name": "dockerize-app",
"version": "1.0.2",
"version": "1.1.0",
"description": "CLI tool to launch a docker container and create a Dockerfile for NodeJS applications",

@@ -39,3 +39,3 @@ "preferGlobal": true,

"mocha": "^2.3.4",
"nock": "^3.1.1"
"nock": "^3.3.2"
},

@@ -42,0 +42,0 @@ "dependencies": {

test:
override:
- nvm install 4.0 && npm rebuild && npm test
- nvm install 4.1 && npm rebuild && npm test
- nvm install 4.2 && npm rebuild && npm test
- nvm install 5.0 && npm rebuild && npm test
- nvm install 5.1 && npm rebuild && npm test
'use strict';
module.exports = function (grunt) {
require('load-grunt-tasks')(grunt);
grunt.initConfig({
module: ['./*.js', './lib/**/*.js'],
tests: ['./test/**/*.js'],
eslint: {
target: ['<%= module %>', '<%= tests %>']
},
mochaTest: {
test: {
options: {
reporter: 'spec',
clearRequireCache: false
},
src: ['<%= tests %>']
}
},
watch: {
all: {
files: ['<%= module %>', '<%= tests %>'],
tasks: ['lint', 'test']
}
},
retire: {
node: ['node']
}
});
grunt.registerTask('lint', 'eslint');
grunt.registerTask('test', 'mochaTest:test');
grunt.registerTask('default', ['lint', 'test']);
};
'use strict';
const os = require('os');
const expect = require('chai').expect;
const nock = require('nock');
const dockerize = require('../lib/dockerize');
describe('Dockerize', () => {
describe('dockerfile', () => {
let nvmrcNockScope;
let packageJsonNockScope;
let unknownNodeNockScope;
beforeEach(() => {
nvmrcNockScope = nock('https://semver.io')
.get('/node/4.x.x')
.reply(200, '4.2.1');
packageJsonNockScope = nock('https://semver.io')
.get('/node/5.x.x')
.reply(200, '5.0.0');
unknownNodeNockScope = nock('https://semver.io')
.get('/node/stable')
.reply(200, '5.1.0')
});
afterEach(() => {
nock.cleanAll();
});
it('throws when there is no package.json', done => {
return dockerize.dockerfile(__dirname + '/12345')
.then(() => {
done(new Error('Expected test to error'));
})
.catch(err => {
expect(err).to.exist;
expect(err).to.be.a('error');
expect(err.message).to.equal(`${__dirname}/12345 does not contain a package.json file!`);
done();
});
});
describe('node version from .nvmrc', () => {
it('requests node version from semver.io', () => {
return dockerize.dockerfile(__dirname + '/sample_app_nvmrc')
.then(() => {
expect(nvmrcNockScope.isDone()).to.equal(true, 'Version not requested from semver.io!');
});
});
it('sets dockerfile FROM', () => {
return dockerize.dockerfile(__dirname + '/sample_app_nvmrc')
.then(dockerfile => {
const lines = dockerfile.split(os.EOL);
expect(lines[0]).to.equal('FROM node:4.2.1');
});
});
});
describe('node version from package.json', () => {
it('requests node version from semver.io', () => {
return dockerize.dockerfile(__dirname + '/sample_app_node_engine')
.then(() => {
expect(packageJsonNockScope.isDone()).to.equal(true, 'Version not requested from semver.io!');
});
});
it('sets dockerfile FROM', () => {
return dockerize.dockerfile(__dirname + '/sample_app_node_engine')
.then(dockerfile => {
const lines = dockerfile.split(os.EOL);
expect(lines[0]).to.equal('FROM node:5.0.0');
});
});
});
describe('unknown node version', () => {
it('requests stable version from semver.io', () => {
return dockerize.dockerfile(__dirname + '/sample_app_no_node_version')
.then(() => {
expect(unknownNodeNockScope.isDone()).to.equal(true, 'Version not requested from semver.io!');
});
});;
it('sets dockerfile FROM', () => {
return dockerize.dockerfile(__dirname + '/sample_app_no_node_version')
.then(dockerfile => {
const lines = dockerfile.split(os.EOL);
expect(lines[0]).to.equal('FROM node:5.1.0');
});
});
});
describe('error getting node version', () => {
beforeEach(() => {
// override existing nock response to 500 error
nock.cleanAll();
nock('https://semver.io')
.get('/node/4.x.x')
.reply(500, 'an error from semver.io');
});
it('throws with error information', done => {
return dockerize.dockerfile(__dirname + '/sample_app_nvmrc')
.then(() => {
done(new Error('Expected an error in test'));
})
.catch(err => {
expect(err).to.exist;
expect(err).to.be.a('error');
expect(err.message).to.equal('Unable to get node version for base image from https://semver.io. 500 - an error from semver.io');
done();
});
});
});
describe('CMD', () => {
it('is npm start when defined in package.json', () => {
return dockerize.dockerfile(__dirname + '/sample_app_npm_start')
.then(dockerfile => {
const lines = dockerfile.split(os.EOL);
expect(lines[lines.length - 1]).to.equal('CMD ["npm", "start"]');
});
});
it('is node [entrypoint] when defined in package.json', () => {
return dockerize.dockerfile(__dirname + '/sample_app_node_entrypoint')
.then(dockerfile => {
const lines = dockerfile.split(os.EOL);
expect(lines[lines.length - 1]).to.equal('CMD ["node", "entrypoint.js"]');
});
});
it('throws when unknown', done => {
return dockerize.dockerfile(__dirname + '/sample_app_unknown_cmd')
.then(dockerfile => {
done(new Error('Expected an error in test'));
})
.catch(err => {
expect(err).to.exist;
expect(err).to.be.a('error');
expect(err.message).to.equal('Cannot determine CMD for Dockerfile. Set "start" script or "main" attribute in package.json!');
done();
});
});
});
describe('source code', () => {
it('copies source code to /usr/[app-name]', () => {
return dockerize.dockerfile(__dirname + '/sample_app_source_code')
.then(dockerfile => {
const lines = dockerfile.split(os.EOL);
expect(lines[1]).to.equal('COPY . /usr/package-json-name')
});
});
it('sets WORKDIR to /usr/[app-name]', () => {
return dockerize.dockerfile(__dirname + '/sample_app_source_code')
.then(dockerfile => {
const lines = dockerfile.split(os.EOL);
expect(lines[2]).to.equal('WORKDIR /usr/package-json-name')
});
});
it ('runs npm install', () => {
return dockerize.dockerfile(__dirname + '/sample_app_source_code')
.then(dockerfile => {
const lines = dockerfile.split(os.EOL);
expect(lines[3]).to.equal('RUN npm install')
});
});
});
});
});
{
"scripts": {
"start": "node index.js"
}
}
{
"engines": {
"node": "5.x.x"
},
"scripts": {
"start": "node index.js"
}
}
{
"engines": {
"node": "5.x.x"
},
"scripts": {
"start": "node index.js"
}
}
{
"scripts": {
"start": "node index.js"
}
}
{
"name": "package-json-name",
"scripts": {
"start": "node index.js"
}
}

Sorry, the diff of this file is not supported yet