pack.go 779 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package pack
  2. import (
  3. "context"
  4. "fmt"
  5. "path/filepath"
  6. "github.com/buildpacks/pack"
  7. "github.com/porter-dev/porter/cli/cmd/docker"
  8. )
  9. type Agent struct{}
  10. func (a *Agent) Build(opts *docker.BuildOpts) error {
  11. //create a context object
  12. context := context.Background()
  13. //initialize a pack client
  14. client, err := pack.NewClient()
  15. if err != nil {
  16. return err
  17. }
  18. absPath, err := filepath.Abs(opts.BuildContext)
  19. if err != nil {
  20. return err
  21. }
  22. buildOpts := pack.BuildOptions{
  23. RelativeBaseDir: filepath.Dir(absPath),
  24. Image: fmt.Sprintf("%s:%s", opts.ImageRepo, opts.Tag),
  25. Builder: "heroku/buildpacks:18",
  26. AppPath: opts.BuildContext,
  27. TrustBuilder: true,
  28. Env: opts.Env,
  29. }
  30. return client.Build(context, buildOpts)
  31. }