[docker/]<main.minor>[/<optional>]/Dockerfile
foreach <main>.<minor>
if -f <main>.<minor>/Dockerfile
tags[<main>.<minor>]=<main>.<minor>
if MAX(<main>.*, minor) == <minor>
tags[<main>]=tags[<main>.<minor>]
if MAX(*.*, main) == <main>
tags[latest]=tags[<main>.<minor>]
foreach <main>.<minor>/<optional>
if -f <main>.<minor>/<optional>/Dockerfile
tags[<main>.<minor>-<optional>]=<main>.<minor>/<optional>
if tags[<main>] == tags[<main>.<minor>]
tags[<main>-<optional>]=tags[<main>.<minor>-<optional>]