goctl docker command add -version (#1206)

* feature(优化): 优化goctl

goctl docker 命令新增version参数,指定builder golang 版本

* feature(优化): 优化goctl

goctl docker 命令新增version参数,指定builder golang 版本
master
晨曦中 3 years ago committed by GitHub
parent 3ede597a15
commit 539215d7df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -30,6 +30,7 @@ type Docker struct {
HasPort bool
Port int
Argument string
Version string
}
// DockerCommand provides the entry for goctl docker
@ -42,6 +43,11 @@ func DockerCommand(c *cli.Context) (err error) {
goFile := c.String("go")
home := c.String("home")
version := c.String("version")
if len(version) > 0 {
version = version + "-"
}
if len(home) > 0 {
util.RegisterGoctlHome(home)
@ -57,7 +63,7 @@ func DockerCommand(c *cli.Context) (err error) {
port := c.Int("port")
if _, err := os.Stat(etcDir); os.IsNotExist(err) {
return generateDockerfile(goFile, port)
return generateDockerfile(goFile, port, version)
}
cfg, err := findConfig(goFile, etcDir)
@ -65,7 +71,7 @@ func DockerCommand(c *cli.Context) (err error) {
return err
}
if err := generateDockerfile(goFile, port, "-f", "etc/"+cfg); err != nil {
if err := generateDockerfile(goFile, port, version, "-f", "etc/"+cfg); err != nil {
return err
}
@ -106,7 +112,7 @@ func findConfig(file, dir string) (string, error) {
return files[0], nil
}
func generateDockerfile(goFile string, port int, args ...string) error {
func generateDockerfile(goFile string, port int, version string, args ...string) error {
projPath, err := getFilePath(filepath.Dir(goFile))
if err != nil {
return err
@ -147,6 +153,7 @@ func generateDockerfile(goFile string, port int, args ...string) error {
HasPort: port > 0,
Port: port,
Argument: builder.String(),
Version: version,
})
}

@ -8,7 +8,7 @@ import (
const (
category = "docker"
dockerTemplateFile = "docker.tpl"
dockerTemplate = `FROM golang:alpine AS builder
dockerTemplate = `FROM golang:{{.Version}}alpine AS builder
LABEL stage=gobuilder

@ -255,6 +255,10 @@ var commands = []cli.Command{
Name: "home",
Usage: "the goctl home path of the template",
},
cli.StringFlag{
Name: "version",
Usage: "the goctl builder golang image version",
},
},
Action: docker.DockerCommand,
},

Loading…
Cancel
Save