goctl docker command add -version (#1206)
* feature(优化): 优化goctl goctl docker 命令新增version参数,指定builder golang 版本 * feature(优化): 优化goctl goctl docker 命令新增version参数,指定builder golang 版本
This commit is contained in:
@@ -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,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user