diff --git a/parser.js b/parser.js index 4042799..e6c37bb 100644 --- a/parser.js +++ b/parser.js @@ -174,7 +174,7 @@ function parseNameVal(cmd) { return false; } var parts = word.split('='); - cmd.args[parts[0]] = parts.slice(1).join('='); + cmd.args[parts[0]] = parts.slice(1).join('=').replace(/^"(.+?)"$/g, '$1'); } } diff --git a/test/Dockerfile b/test/Dockerfile index 3eaea70..bbd83e0 100644 --- a/test/Dockerfile +++ b/test/Dockerfile @@ -12,4 +12,5 @@ EXPOSE 80 EXPOSE 9989 VOLUME /srv/data2 RUN cd /srv/app && make build2 +LABEL name="Some Name" ENTRYPOINT node index.js diff --git a/test/test_parser.js b/test/test_parser.js index 6aa19ed..3c4a9e4 100644 --- a/test/test_parser.js +++ b/test/test_parser.js @@ -68,7 +68,7 @@ tape('should parse a Dockerfile', function (t) { var dockerFile = fs.readFileSync(dname + '/Dockerfile', 'utf8'); var commands = dockerfileParser.parse(dockerFile); - var numCommands = 15; + var numCommands = 16; t.equal(commands.length, numCommands, 'Check number of commands'); var from = commands[0]; @@ -85,6 +85,11 @@ tape('should parse a Dockerfile', function (t) { t.equal(env.args['VAR2'], '20', 'ENV VAR2 check'); t.equal(env.args['VAR3'], '30', 'ENV VAR3 check'); + var label = commands[14]; + t.equal(label.name, 'LABEL', '15th command is LABEL'); + t.equal(Object.keys(label.args).length, 1, 'LABEL command has 1 key'); + t.equal(label.args['name'], 'Some Name', 'LABEL name check'); + t.equal(commands[numCommands-1].name, 'ENTRYPOINT', 'Last command should be ENTRYPOINT');