core/plan/dockerignore.go
core/plan/dockerignore.goBrowse 1970 files
275 tokens
1,064 bytes
Token encoding: o200k_base
Snapshot 21a254f
← Back to SKILL.md
1package plan2 3import (4 "strings"5 6 "github.com/railwayapp/railpack/core/app"7 8 // this is the native dockerignore parser used by buildkit9 // https://github.com/moby/buildkit/blob/master/frontend/dockerfile/dockerignore/dockerignore_deprecated.go10 "github.com/moby/patternmatcher/ignorefile"11)12 13// parses a .dockerignore file from the app directory. assumes the file exists.14func checkAndParseDockerignore(app *app.App) ([]string, error) {15 content, err := app.ReadFile(".dockerignore")16 if err != nil {17 return nil, err18 }19 20 reader := strings.NewReader(content)21 patterns, err := ignorefile.ReadAll(reader)22 if err != nil {23 return nil, err24 }25 26 return patterns, nil27}28 29type DockerignoreContext struct {30 Excludes []string31 HasFile bool32}33 34func NewDockerignoreContext(app *app.App) (*DockerignoreContext, error) {35 if !app.HasFile(".dockerignore") {36 return &DockerignoreContext{}, nil37 }38 39 excludes, err := checkAndParseDockerignore(app)40 if err != nil {41 return nil, err42 }43 44 return &DockerignoreContext{45 Excludes: excludes,46 HasFile: true,47 }, nil48}49