diff options
author | Daniel J Walsh <dwalsh@redhat.com> | 2021-03-02 14:57:46 -0500 |
---|---|---|
committer | Daniel J Walsh <dwalsh@redhat.com> | 2021-03-07 06:42:02 -0500 |
commit | 2c500a8145854c5f566bf76199d2a27226925b60 (patch) | |
tree | bb6a8ef928d691fe4047c275775775feefba3119 /cmd/podman | |
parent | a9fcd9d7602ce59a704884c6840e27666fea20d1 (diff) | |
download | podman-2c500a8145854c5f566bf76199d2a27226925b60.tar.gz podman-2c500a8145854c5f566bf76199d2a27226925b60.tar.bz2 podman-2c500a8145854c5f566bf76199d2a27226925b60.zip |
Add support for podman build --ignorefile
Fixes: https://github.com/containers/podman/issues/9570
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Diffstat (limited to 'cmd/podman')
-rw-r--r-- | cmd/podman/images/build.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/cmd/podman/images/build.go b/cmd/podman/images/build.go index de532ed78..78cf4efd0 100644 --- a/cmd/podman/images/build.go +++ b/cmd/podman/images/build.go @@ -2,6 +2,7 @@ package images import ( "io" + "io/ioutil" "os" "path/filepath" "strings" @@ -512,6 +513,14 @@ func buildFlagsWrapperToOptions(c *cobra.Command, contextDir string, flags *buil TransientMounts: flags.Volumes, } + if flags.IgnoreFile != "" { + excludes, err := parseDockerignore(flags.IgnoreFile) + if err != nil { + return nil, errors.Wrapf(err, "unable to obtain decrypt config") + } + opts.Excludes = excludes + } + if c.Flag("timestamp").Changed { timestamp := time.Unix(flags.Timestamp, 0).UTC() opts.Timestamp = ×tamp @@ -534,3 +543,18 @@ func getDecryptConfig(decryptionKeys []string) (*encconfig.DecryptConfig, error) return decConfig, nil } + +func parseDockerignore(ignoreFile string) ([]string, error) { + excludes := []string{} + ignore, err := ioutil.ReadFile(ignoreFile) + if err != nil { + return excludes, err + } + for _, e := range strings.Split(string(ignore), "\n") { + if len(e) == 0 || e[0] == '#' { + continue + } + excludes = append(excludes, e) + } + return excludes, nil +} |