Add support for automatic opencontainer labels
This commit is contained in:
parent
9c86f98ea5
commit
bd4029884c
@ -192,6 +192,16 @@ func main() {
|
||||
Usage: "label-schema labels",
|
||||
EnvVar: "PLUGIN_LABEL_SCHEMA",
|
||||
},
|
||||
cli.BoolTFlag{
|
||||
Name: "auto-label",
|
||||
Usage: "auto-label true|false",
|
||||
EnvVar: "PLUGIN_AUTO_LABEL",
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "link",
|
||||
Usage: "link https://example.com/org/repo-name",
|
||||
EnvVar: "PLUGIN_REPO_LINK,DRONE_REPO_LINK",
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "docker.registry",
|
||||
Usage: "docker registry",
|
||||
@ -272,6 +282,8 @@ func run(c *cli.Context) error {
|
||||
Repo: c.String("repo"),
|
||||
Labels: c.StringSlice("custom-labels"),
|
||||
LabelSchema: c.StringSlice("label-schema"),
|
||||
AutoLabel: c.BoolT("auto-label"),
|
||||
Link: c.String("link"),
|
||||
NoCache: c.Bool("no-cache"),
|
||||
AddHost: c.StringSlice("add-host"),
|
||||
Quiet: c.Bool("quiet"),
|
||||
|
15
docker.go
15
docker.go
@ -53,7 +53,9 @@ type (
|
||||
Compress bool // Docker build compress
|
||||
Repo string // Docker build repository
|
||||
LabelSchema []string // label-schema Label map
|
||||
AutoLabel bool // auto-label bool
|
||||
Labels []string // Label map
|
||||
Link string // Git repo link
|
||||
NoCache bool // Docker build no-cache
|
||||
AddHost []string // Docker build add-host
|
||||
Quiet bool // Docker build quiet
|
||||
@ -252,19 +254,22 @@ func commandBuild(build Build) *exec.Cmd {
|
||||
args = append(args, "--quiet")
|
||||
}
|
||||
|
||||
if build.AutoLabel {
|
||||
labelSchema := []string{
|
||||
"schema-version=1.0",
|
||||
fmt.Sprintf("build-date=%s", time.Now().Format(time.RFC3339)),
|
||||
fmt.Sprintf("vcs-ref=%s", build.Name),
|
||||
fmt.Sprintf("vcs-url=%s", build.Remote),
|
||||
fmt.Sprintf("created=%s", time.Now().Format(time.RFC3339)),
|
||||
fmt.Sprintf("revision=%s", build.Name),
|
||||
fmt.Sprintf("source=%s", build.Remote),
|
||||
fmt.Sprintf("url=%s", build.Link),
|
||||
}
|
||||
labelPrefix := "org.opencontainers.image"
|
||||
|
||||
if len(build.LabelSchema) > 0 {
|
||||
labelSchema = append(labelSchema, build.LabelSchema...)
|
||||
}
|
||||
|
||||
for _, label := range labelSchema {
|
||||
args = append(args, "--label", fmt.Sprintf("org.label-schema.%s", label))
|
||||
args = append(args, "--label", fmt.Sprintf("%s.%s", labelPrefix, label))
|
||||
}
|
||||
}
|
||||
|
||||
if len(build.Labels) > 0 {
|
||||
|
Loading…
Reference in New Issue
Block a user