diff --git a/src/Language/Docker/Parser/From.hs b/src/Language/Docker/Parser/From.hs index 1e14de1..13d1869 100644 --- a/src/Language/Docker/Parser/From.hs +++ b/src/Language/Docker/Parser/From.hs @@ -9,11 +9,9 @@ import Language.Docker.Syntax parseRegistry :: (?esc :: Char) => Parser Registry parseRegistry = do - domain <- someUnless "a domain name" (== '.') - void $ char '.' - tld <- someUnless "a TLD" (== '/') + registry <- someUnless "a registry" (== '/') void $ char '/' - return $ Registry (domain <> "." <> tld) + return $ Registry (registry) parsePlatform :: (?esc :: Char) => Parser Platform parsePlatform = do diff --git a/test/Language/Docker/ParserSpec.hs b/test/Language/Docker/ParserSpec.hs index 971cc09..c72e77c 100644 --- a/test/Language/Docker/ParserSpec.hs +++ b/test/Language/Docker/ParserSpec.hs @@ -63,6 +63,10 @@ spec = do assertAst "FROM myregistry.com:5000/imagename:5.12-dev" [From (taggedImage (Image (Just "myregistry.com:5000") "imagename") "5.12-dev")] + it "parse without '.*' on registry and port and tag" $ + assertAst + "FROM myregistry:5000/imagename:5.12-dev" + [From (taggedImage (Image (Just "myregistry.com:5000") "imagename") "5.12-dev")] it "Not a registry if no TLD" $ assertAst "FROM myfolder/imagename:5.12-dev"