Skip to content

Commit ba40132

Browse files
author
John Howard
committed
LCOW: Fix ImageCache to address right store
Signed-off-by: John Howard <jhoward@microsoft.com>
1 parent 87abf34 commit ba40132

File tree

6 files changed

+13
-17
lines changed

6 files changed

+13
-17
lines changed

builder/builder.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ type Result struct {
7878
// ImageCacheBuilder represents a generator for stateful image cache.
7979
type ImageCacheBuilder interface {
8080
// MakeImageCache creates a stateful image cache.
81-
MakeImageCache(cacheFrom []string) ImageCache
81+
MakeImageCache(cacheFrom []string, platform string) ImageCache
8282
}
8383

8484
// ImageCache abstracts an image cache.

builder/dockerfile/builder.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ func newBuilder(clientCtx context.Context, options builderOptions) *Builder {
166166
buildStages: newBuildStages(),
167167
imageSources: newImageSources(clientCtx, options),
168168
pathCache: options.PathCache,
169-
imageProber: newImageProber(options.Backend, config.CacheFrom, config.NoCache),
169+
imageProber: newImageProber(options.Backend, config.CacheFrom, options.Platform, config.NoCache),
170170
containerManager: newContainerManager(options.Backend),
171171
platform: options.Platform,
172172
}

builder/dockerfile/dispatchers_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func newBuilderWithMockBackend() *Builder {
6363
Backend: mockBackend,
6464
}),
6565
buildStages: newBuildStages(),
66-
imageProber: newImageProber(mockBackend, nil, false),
66+
imageProber: newImageProber(mockBackend, nil, runtime.GOOS, false),
6767
containerManager: newContainerManager(mockBackend),
6868
}
6969
return b
@@ -488,10 +488,10 @@ func TestRunWithBuildArgs(t *testing.T) {
488488
}
489489

490490
mockBackend := b.docker.(*MockBackend)
491-
mockBackend.makeImageCacheFunc = func(_ []string) builder.ImageCache {
491+
mockBackend.makeImageCacheFunc = func(_ []string, _ string) builder.ImageCache {
492492
return imageCache
493493
}
494-
b.imageProber = newImageProber(mockBackend, nil, false)
494+
b.imageProber = newImageProber(mockBackend, nil, runtime.GOOS, false)
495495
mockBackend.getImageFunc = func(_ string) (builder.Image, builder.ReleaseableLayer, error) {
496496
return &mockImage{
497497
id: "abcdef",

builder/dockerfile/imageprobe.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ type imageProber struct {
1919
cacheBusted bool
2020
}
2121

22-
func newImageProber(cacheBuilder builder.ImageCacheBuilder, cacheFrom []string, noCache bool) ImageProber {
22+
func newImageProber(cacheBuilder builder.ImageCacheBuilder, cacheFrom []string, platform string, noCache bool) ImageProber {
2323
if noCache {
2424
return &nopProber{}
2525
}
2626

2727
reset := func() builder.ImageCache {
28-
return cacheBuilder.MakeImageCache(cacheFrom)
28+
return cacheBuilder.MakeImageCache(cacheFrom, platform)
2929
}
3030
return &imageProber{cache: reset(), reset: reset}
3131
}

builder/dockerfile/mockbackend_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ type MockBackend struct {
1818
containerCreateFunc func(config types.ContainerCreateConfig) (container.ContainerCreateCreatedBody, error)
1919
commitFunc func(string, *backend.ContainerCommitConfig) (string, error)
2020
getImageFunc func(string) (builder.Image, builder.ReleaseableLayer, error)
21-
makeImageCacheFunc func(cacheFrom []string) builder.ImageCache
21+
makeImageCacheFunc func(cacheFrom []string, platform string) builder.ImageCache
2222
}
2323

2424
func (m *MockBackend) ContainerAttachRaw(cID string, stdin io.ReadCloser, stdout, stderr io.Writer, stream bool, attached chan struct{}) error {
@@ -71,9 +71,9 @@ func (m *MockBackend) GetImageAndReleasableLayer(ctx context.Context, refOrID st
7171
return &mockImage{id: "theid"}, &mockLayer{}, nil
7272
}
7373

74-
func (m *MockBackend) MakeImageCache(cacheFrom []string) builder.ImageCache {
74+
func (m *MockBackend) MakeImageCache(cacheFrom []string, platform string) builder.ImageCache {
7575
if m.makeImageCacheFunc != nil {
76-
return m.makeImageCacheFunc(cacheFrom)
76+
return m.makeImageCacheFunc(cacheFrom, platform)
7777
}
7878
return nil
7979
}

daemon/cache.go

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,18 @@
11
package daemon
22

33
import (
4-
"runtime"
5-
64
"github.com/Sirupsen/logrus"
75
"github.com/docker/docker/builder"
86
"github.com/docker/docker/image/cache"
97
)
108

119
// MakeImageCache creates a stateful image cache.
12-
func (daemon *Daemon) MakeImageCache(sourceRefs []string) builder.ImageCache {
10+
func (daemon *Daemon) MakeImageCache(sourceRefs []string, platform string) builder.ImageCache {
1311
if len(sourceRefs) == 0 {
14-
// TODO @jhowardmsft LCOW. For now, assume it is the OS of the host
15-
return cache.NewLocal(daemon.stores[runtime.GOOS].imageStore)
12+
return cache.NewLocal(daemon.stores[platform].imageStore)
1613
}
1714

18-
// TODO @jhowardmsft LCOW. For now, assume it is the OS of the host
19-
cache := cache.New(daemon.stores[runtime.GOOS].imageStore)
15+
cache := cache.New(daemon.stores[platform].imageStore)
2016

2117
for _, ref := range sourceRefs {
2218
img, err := daemon.GetImage(ref)

0 commit comments

Comments
 (0)