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
2 changes: 1 addition & 1 deletion .drone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ pipeline:
publish:
image: plugins/docker
repo: plugins/docker
tags: [ "latest", "1.12", "1" ]
tags: [ "latest", "1.13", "1" ]
when:
branch: master
event: push
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM docker:1.12-dind
FROM docker:1.13-dind

ADD drone-docker /bin/
ENTRYPOINT ["/usr/local/bin/dockerd-entrypoint.sh", "/bin/drone-docker"]
12 changes: 12 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,11 @@ func main() {
Usage: "docker daemon IPv6 networking",
EnvVar: "PLUGIN_IPV6",
},
cli.BoolFlag{
Name: "daemon.experimental",
Usage: "docker daemon Experimental mode",
EnvVar: "PLUGIN_EXPERIMENTAL",
},
cli.BoolFlag{
Name: "daemon.debug",
Usage: "docker daemon executes in debug mode",
Expand Down Expand Up @@ -108,6 +113,11 @@ func main() {
Usage: "build args",
EnvVar: "PLUGIN_BUILD_ARGS",
},
cli.BoolFlag{
Name: "squash",
Usage: "squash the layers at build time",
EnvVar: "PLUGIN_SQUASH",
},
cli.StringFlag{
Name: "repo",
Usage: "docker repository",
Expand Down Expand Up @@ -156,6 +166,7 @@ func run(c *cli.Context) error {
Context: c.String("context"),
Tags: c.StringSlice("tags"),
Args: c.StringSlice("args"),
Squash: c.Bool("squash"),
Repo: c.String("repo"),
},
Daemon: Daemon{
Expand All @@ -170,6 +181,7 @@ func run(c *cli.Context) error {
Bip: c.String("daemon.bip"),
DNS: c.StringSlice("daemon.dns"),
MTU: c.String("daemon.mtu"),
Experimental: c.Bool("daemon.experimental"),
},
}

Expand Down
26 changes: 20 additions & 6 deletions plugin.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ type (
DNS []string // Docker daemon dns server
MTU string // Docker daemon mtu setting
IPv6 bool // Docker daemon IPv6 networking
Experimental bool // Docker daemon enable experimental mode
}

// Login defines Docker login parameters.
Expand All @@ -45,6 +46,7 @@ type (
Context string // Docker build context
Tags []string // Docker build tags
Args []string // Docker build args
Squash bool // Docker build squash
Repo string // Docker build repository
}

Expand Down Expand Up @@ -108,6 +110,11 @@ func (p Plugin) Exec() error {
fmt.Println("Registry credentials not provided. Guest mode enabled.")
}

if p.Build.Squash && !p.Daemon.Experimental {
fmt.Println("Squash build flag is only available when Docker deamon is started with experimental flag. Ignoring...")
p.Build.Squash = false
}

// add proxy build args
addProxyBuildArgs(&p.Build)

Expand Down Expand Up @@ -176,19 +183,23 @@ func commandInfo() *exec.Cmd {

// helper function to create the docker build command.
func commandBuild(build Build) *exec.Cmd {
cmd := exec.Command(
dockerExe, "build",
args := []string {
"build",
"--pull=true",
"--rm=true",
"-f", build.Dockerfile,
"-t", build.Name,
)
}

args = append(args, build.Context)
if build.Squash {
args = append(args, "--squash")
}
for _, arg := range build.Args {
cmd.Args = append(cmd.Args, "--build-arg", arg)
args = append(args, "--build-arg", arg)
}
cmd.Args = append(cmd.Args, build.Context)
return cmd

return exec.Command(dockerExe, args...)
}

// helper function to add proxy values from the environment
Expand Down Expand Up @@ -276,6 +287,9 @@ func commandDaemon(daemon Daemon) *exec.Cmd {
if len(daemon.MTU) != 0 {
args = append(args, "--mtu", daemon.MTU)
}
if daemon.Experimental {
args = append(args, "--experimental")
}
return exec.Command(dockerExe, args...)
}

Expand Down