top

Package builder is the evaluation step in the Dockerfile parse/evaluate pipeline.

It incorporates a dispatch table based on the parser.Node values (see the parser package for more information) that are yielded from the parser itself. Calling NewBuilder with the BuildOpts struct can be used to customize the experience for execution purposes only. Parsing is controlled in the parser package, and this division of resposibility should be respected.

Please see the jump table targets for the actual invocations, most of which will call out to the functions in internals.go to deal with their tasks.

ONBUILD is a special case, which is covered in the onbuild() func in dispatchers.go.

The evaluator uses the concept of "steps", which are usually each processable line in the Dockerfile. Each step is numbered and certain actions are taken before and after each step, such as creating an image ID and removing temporary containers and images. Note that ONBUILD creates a kinda-sorta "sub run" which includes its own set of steps (usually only one of them).

Imports 31 package(s) ΒΆ

  1. github.com/Sirupsen/logrus
  2. github.com/docker/docker/pkg/urlutil
  3. github.com/docker/docker/pkg/mflag
  4. github.com/docker/docker/utils
  5. github.com/docker/docker/pkg/ulimit
  6. github.com/docker/docker/runconfig
  7. github.com/docker/docker/pkg/parsers
  8. github.com/docker/docker/cliconfig
  9. github.com/docker/docker/pkg/fileutils
  10. github.com/docker/docker/image
  11. github.com/docker/docker/pkg/archive
  12. github.com/docker/docker/pkg/signal
  13. github.com/docker/docker/pkg/progressreader
  14. github.com/docker/docker/pkg/jsonmessage
  15. github.com/docker/docker/pkg/symlink
  16. github.com/docker/docker/graph
  17. github.com/docker/docker/pkg/chrootarchive
  18. github.com/docker/docker/registry
  19. github.com/docker/docker/pkg/nat
  20. github.com/docker/docker/graph/tags
  21. github.com/docker/docker/builder/command
  22. github.com/docker/docker/pkg/stringutils
  23. github.com/docker/docker/pkg/system
  24. github.com/docker/docker/pkg/tarsum
  25. github.com/docker/docker/api
  26. github.com/docker/docker/pkg/streamformatter
  27. github.com/docker/docker/pkg/httputils
  28. github.com/docker/docker/builder/parser
  29. github.com/docker/docker/daemon
  30. github.com/docker/docker/pkg/ioutils
  31. github.com/docker/docker/pkg/stringid