Skip to content

Commit 4d9dc35

Browse files
committed
Add support for containerd image store
1 parent 8c5277a commit 4d9dc35

File tree

2 files changed

+42
-30
lines changed

2 files changed

+42
-30
lines changed

cmd/drone-docker/main.go

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ import (
1010
"github.com/sirupsen/logrus"
1111
"github.com/urfave/cli"
1212

13-
docker "github.com/drone-plugins/drone-docker"
1413
"github.com/drone-plugins/drone-plugin-lib/drone"
14+
15+
docker "github.com/drone-plugins/drone-docker"
1516
)
1617

1718
var (
@@ -102,6 +103,11 @@ func main() {
102103
Usage: "docker daemon Experimental mode",
103104
EnvVar: "PLUGIN_EXPERIMENTAL",
104105
},
106+
cli.BoolFlag{
107+
Name: "daemon.containerd-image-store",
108+
Usage: "docker daemon containerd image store",
109+
EnvVar: "PLUGIN_CONTAINERD_IMAGE_STORE",
110+
},
105111
cli.BoolFlag{
106112
Name: "daemon.debug",
107113
Usage: "docker daemon executes in debug mode",
@@ -380,20 +386,21 @@ func run(c *cli.Context) error {
380386
SSHAgentKey: c.String("ssh-agent-key"),
381387
},
382388
Daemon: docker.Daemon{
383-
Registry: c.String("docker.registry"),
384-
Mirror: c.String("daemon.mirror"),
385-
StorageDriver: c.String("daemon.storage-driver"),
386-
StoragePath: c.String("daemon.storage-path"),
387-
Insecure: c.Bool("daemon.insecure"),
388-
Disabled: c.Bool("daemon.off"),
389-
IPv6: c.Bool("daemon.ipv6"),
390-
Debug: c.Bool("daemon.debug"),
391-
Bip: c.String("daemon.bip"),
392-
DNS: c.StringSlice("daemon.dns"),
393-
DNSSearch: c.StringSlice("daemon.dns-search"),
394-
MTU: c.String("daemon.mtu"),
395-
Experimental: c.Bool("daemon.experimental"),
396-
RegistryType: registryType,
389+
Registry: c.String("docker.registry"),
390+
Mirror: c.String("daemon.mirror"),
391+
StorageDriver: c.String("daemon.storage-driver"),
392+
StoragePath: c.String("daemon.storage-path"),
393+
Insecure: c.Bool("daemon.insecure"),
394+
Disabled: c.Bool("daemon.off"),
395+
IPv6: c.Bool("daemon.ipv6"),
396+
Debug: c.Bool("daemon.debug"),
397+
Bip: c.String("daemon.bip"),
398+
DNS: c.StringSlice("daemon.dns"),
399+
DNSSearch: c.StringSlice("daemon.dns-search"),
400+
MTU: c.String("daemon.mtu"),
401+
Experimental: c.Bool("daemon.experimental"),
402+
RegistryType: registryType,
403+
ContainerdImageStoreEnabled: c.Bool("daemon.containerd-image-store"),
397404
},
398405
BaseImageRegistry: c.String("docker.baseimageregistry"),
399406
BaseImageUsername: c.String("docker.baseimageusername"),

docker.go

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,29 @@ import (
1010
"strings"
1111
"time"
1212

13-
"github.com/drone-plugins/drone-docker/internal/docker"
1413
"github.com/drone-plugins/drone-plugin-lib/drone"
14+
15+
"github.com/drone-plugins/drone-docker/internal/docker"
1516
)
1617

1718
type (
1819
// Daemon defines Docker daemon parameters.
1920
Daemon struct {
20-
Registry string // Docker registry
21-
Mirror string // Docker registry mirror
22-
Insecure bool // Docker daemon enable insecure registries
23-
StorageDriver string // Docker daemon storage driver
24-
StoragePath string // Docker daemon storage path
25-
Disabled bool // DOcker daemon is disabled (already running)
26-
Debug bool // Docker daemon started in debug mode
27-
Bip string // Docker daemon network bridge IP address
28-
DNS []string // Docker daemon dns server
29-
DNSSearch []string // Docker daemon dns search domain
30-
MTU string // Docker daemon mtu setting
31-
IPv6 bool // Docker daemon IPv6 networking
32-
Experimental bool // Docker daemon enable experimental mode
33-
RegistryType drone.RegistryType // Docker registry type
21+
Registry string // Docker registry
22+
Mirror string // Docker registry mirror
23+
Insecure bool // Docker daemon enable insecure registries
24+
StorageDriver string // Docker daemon storage driver
25+
StoragePath string // Docker daemon storage path
26+
Disabled bool // DOcker daemon is disabled (already running)
27+
Debug bool // Docker daemon started in debug mode
28+
Bip string // Docker daemon network bridge IP address
29+
DNS []string // Docker daemon dns server
30+
DNSSearch []string // Docker daemon dns search domain
31+
MTU string // Docker daemon mtu setting
32+
IPv6 bool // Docker daemon IPv6 networking
33+
Experimental bool // Docker daemon enable experimental mode
34+
RegistryType drone.RegistryType // Docker registry type
35+
ContainerdImageStoreEnabled bool // Docker daemon containerd image store enabled
3436
}
3537

3638
// Login defines Docker login parameters.
@@ -593,6 +595,9 @@ func commandDaemon(daemon Daemon) *exec.Cmd {
593595
"--data-root", daemon.StoragePath,
594596
"--host=unix:///var/run/docker.sock",
595597
}
598+
if daemon.ContainerdImageStoreEnabled {
599+
args = append(args, "--feature", "containerd-snapshotter=true")
600+
}
596601

597602
if _, err := os.Stat("/etc/docker/default.json"); err == nil {
598603
args = append(args, "--seccomp-profile=/etc/docker/default.json")

0 commit comments

Comments
 (0)