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 32 package(s) ΒΆ

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