github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/dockerfile/dockerfile.go (about) 1 package dockerfile 2 3 import ( 4 "github.com/distribution/reference" 5 "github.com/moby/buildkit/frontend/dockerfile/parser" 6 ) 7 8 type Dockerfile string 9 10 func (d Dockerfile) Empty() bool { 11 return d.String() == "" 12 } 13 14 // Find all images referenced in this dockerfile. 15 func (d Dockerfile) FindImages(buildArgs []string) ([]reference.Named, error) { 16 result := []reference.Named{} 17 ast, err := ParseAST(d) 18 if err != nil { 19 return nil, err 20 } 21 22 err = ast.traverseImageRefs(func(node *parser.Node, ref reference.Named) reference.Named { 23 result = append(result, ref) 24 return nil 25 }, argInstructions(buildArgs)) 26 if err != nil { 27 return nil, err 28 } 29 return result, nil 30 } 31 32 func (d Dockerfile) String() string { 33 return string(d) 34 }