Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions daemon/daemon.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ type Daemon struct {
containers container.Store
containersReplica container.ViewDB
execCommands *exec.Store
imageService *images.ImageService
imageService ImageService
idIndex *truncindex.TruncIndex
configStore *config.Config
statsCollector *stats.Collector
Expand Down Expand Up @@ -1476,15 +1476,15 @@ func (daemon *Daemon) IdentityMapping() idtools.IdentityMapping {
}

// ImageService returns the Daemon's ImageService
func (daemon *Daemon) ImageService() *images.ImageService {
func (daemon *Daemon) ImageService() ImageService {
return daemon.imageService
}

// BuilderBackend returns the backend used by builder
func (daemon *Daemon) BuilderBackend() builder.Backend {
return struct {
*Daemon
*images.ImageService
ImageService
}{daemon, daemon.imageService}
}

Expand Down
70 changes: 70 additions & 0 deletions daemon/image_service.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package daemon

import (
"context"
"io"

"github.com/docker/distribution"
"github.com/docker/distribution/reference"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/backend"
"github.com/docker/docker/api/types/filters"
imagetype "github.com/docker/docker/api/types/image"
"github.com/docker/docker/api/types/registry"
"github.com/docker/docker/builder"
"github.com/docker/docker/container"
"github.com/docker/docker/daemon/images"
"github.com/docker/docker/image"
"github.com/docker/docker/layer"
v1 "github.com/opencontainers/image-spec/specs-go/v1"
)

type ImageService interface {
// Images
PullImage(ctx context.Context, image, tag string, platform *v1.Platform, metaHeaders map[string][]string, authConfig *types.AuthConfig, outStream io.Writer) error
PushImage(ctx context.Context, image, tag string, metaHeaders map[string][]string, authConfig *types.AuthConfig, outStream io.Writer) error
CreateImage(config []byte, parent string) (builder.Image, error)
ImageDelete(imageRef string, force, prune bool) ([]types.ImageDeleteResponseItem, error)
ExportImage(names []string, outStream io.Writer) error
LoadImage(inTar io.ReadCloser, outStream io.Writer, quiet bool) error
Images(ctx context.Context, opts types.ImageListOptions) ([]*types.ImageSummary, error)
LogImageEvent(imageID, refName, action string)
LogImageEventWithAttributes(imageID, refName, action string, attributes map[string]string)
CountImages() int
ImageDiskUsage(ctx context.Context) ([]*types.ImageSummary, error)
ImagesPrune(ctx context.Context, pruneFilters filters.Args) (*types.ImagesPruneReport, error)
ImportImage(src string, repository string, platform *v1.Platform, tag string, msg string, inConfig io.ReadCloser, outStream io.Writer, changes []string) error
TagImage(imageName, repository, tag string) (string, error)
TagImageWithReference(imageID image.ID, newTag reference.Named) error
GetImage(refOrID string, platform *v1.Platform) (retImg *image.Image, retErr error)
ImageHistory(name string) ([]*imagetype.HistoryResponseItem, error)
CommitImage(c backend.CommitConfig) (image.ID, error)
SquashImage(id, parent string) (string, error)

// Layers
GetImageAndReleasableLayer(ctx context.Context, refOrID string, opts backend.GetImageAndLayerOptions) (builder.Image, builder.ROLayer, error)
CreateLayer(container *container.Container, initFunc layer.MountInit) (layer.RWLayer, error)
GetLayerByID(cid string) (layer.RWLayer, error)
LayerStoreStatus() [][2]string
GetLayerMountID(cid string) (string, error)
ReleaseLayer(rwlayer layer.RWLayer) error
LayerDiskUsage(ctx context.Context) (int64, error)
GetContainerLayerSize(containerID string) (int64, int64)

// Windows specific
GetLayerFolders(img *image.Image, rwLayer layer.RWLayer) ([]string, error)

// Build
MakeImageCache(sourceRefs []string) builder.ImageCache
CommitBuildStep(c backend.CommitConfig) (image.ID, error)

// Other
GetRepository(ctx context.Context, ref reference.Named, authConfig *types.AuthConfig) (distribution.Repository, error)
Map() map[image.ID]*image.Image
SearchRegistryForImages(ctx context.Context, searchFilters filters.Args, term string, limit int, authConfig *types.AuthConfig, headers map[string][]string) (*registry.SearchResults, error)
DistributionServices() images.DistributionServices
Children(id image.ID) []image.ID
Cleanup() error
GraphDriverName() string
UpdateConfig(maxDownloads, maxUploads int)
}
7 changes: 7 additions & 0 deletions daemon/images/image_unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,16 @@
package images // import "github.com/docker/docker/daemon/images"

import (
"github.com/docker/docker/image"
"github.com/docker/docker/layer"
"github.com/sirupsen/logrus"
)

func (i *ImageService) GetLayerFolders(img *image.Image, rwLayer layer.RWLayer) ([]string, error) {
// Windows specific
panic("not implemented")
}

// GetContainerLayerSize returns the real size & virtual size of the container.
func (i *ImageService) GetContainerLayerSize(containerID string) (int64, int64) {
var (
Expand Down