diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-11-25 12:49:04 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-11-25 18:59:06 +0100 |
commit | d6f7a9e28dfd5abff08b6aaf6fb3493c46bd1e39 (patch) | |
tree | f5715b86cff28eb5c7ab7320c30a492806441cae /resources/images | |
parent | 031f948f87ac97ca49d0a487a392a8a0c6afb699 (diff) |
resources/images: Make the image cache more robust
Also allow timeout to be set as a duration string, e.g. `30s`.
Fixes #6501
Diffstat (limited to 'resources/images')
-rw-r--r-- | resources/images/image.go | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/resources/images/image.go b/resources/images/image.go index bac05ab70..62e9bb558 100644 --- a/resources/images/image.go +++ b/resources/images/image.go @@ -123,6 +123,15 @@ func (i Image) WithSpec(s Spec) *Image { return &i } +// InitConfig reads the image config from the given reader. +func (i *Image) InitConfig(r io.Reader) error { + var err error + i.configInit.Do(func() { + i.config, _, err = image.DecodeConfig(r) + }) + return err +} + func (i *Image) initConfig() error { var err error i.configInit.Do(func() { @@ -130,10 +139,7 @@ func (i *Image) initConfig() error { return } - var ( - f hugio.ReadSeekCloser - config image.Config - ) + var f hugio.ReadSeekCloser f, err = i.Spec.ReadSeekCloser() if err != nil { @@ -141,11 +147,7 @@ func (i *Image) initConfig() error { } defer f.Close() - config, _, err = image.DecodeConfig(f) - if err != nil { - return - } - i.config = config + i.config, _, err = image.DecodeConfig(f) }) if err != nil { |