summaryrefslogtreecommitdiffstats
path: root/resources/images
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-11-25 12:49:04 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-11-25 18:59:06 +0100
commitd6f7a9e28dfd5abff08b6aaf6fb3493c46bd1e39 (patch)
treef5715b86cff28eb5c7ab7320c30a492806441cae /resources/images
parent031f948f87ac97ca49d0a487a392a8a0c6afb699 (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.go20
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 {