Skip to content

Commit

Permalink
optimize dockerfile generation (#284)
Browse files Browse the repository at this point in the history
  • Loading branch information
kevwan authored Dec 12, 2020
1 parent f919bc6 commit acd48f0
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 13 deletions.
11 changes: 7 additions & 4 deletions tools/goctl/docker/docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,16 @@ type Docker struct {
ExeFile string
HasPort bool
Port int
HasArgs bool
Argument string
}

func DockerCommand(c *cli.Context) error {
func DockerCommand(c *cli.Context) (err error) {
defer func() {
if err == nil {
fmt.Println(aurora.Green("Done."))
}
}()

goFile := c.String("go")
if len(goFile) == 0 {
return errors.New("-go can't be empty")
Expand All @@ -60,7 +65,6 @@ func DockerCommand(c *cli.Context) error {
projDir, ok := util.FindProjectPath(goFile)
if ok {
fmt.Printf("Hint: run \"docker build ...\" command in dir %q\n", projDir)
fmt.Println(aurora.Green("Done."))
}

return nil
Expand Down Expand Up @@ -135,7 +139,6 @@ func generateDockerfile(goFile string, port int, args ...string) error {
ExeFile: util.FileNameWithoutExt(filepath.Base(goFile)),
HasPort: port > 0,
Port: port,
HasArgs: builder.Len() > 0,
Argument: builder.String(),
})
}
Expand Down
6 changes: 3 additions & 3 deletions tools/goctl/docker/template.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ ADD go.mod .
ADD go.sum .
RUN go mod download
COPY . .
{{if .HasArgs}}COPY {{.GoRelPath}}/etc /app/etc
{{if .Argument}}COPY {{.GoRelPath}}/etc /app/etc
{{end}}RUN go build -ldflags="-s -w" -o /app/{{.ExeFile}} {{.GoRelPath}}/{{.GoFile}}
Expand All @@ -32,8 +32,8 @@ RUN apk update --no-cache && apk add --no-cache ca-certificates tzdata
ENV TZ Asia/Shanghai
WORKDIR /app
COPY --from=builder /app/{{.ExeFile}} /app/{{.ExeFile}}
{{if .HasArgs}}COPY --from=builder /app/etc /app/etc{{end}}
COPY --from=builder /app/{{.ExeFile}} /app/{{.ExeFile}}{{if .Argument}}
COPY --from=builder /app/etc /app/etc{{end}}
{{if .HasPort}}
EXPOSE {{.Port}}
{{end}}
Expand Down
5 changes: 2 additions & 3 deletions tools/goctl/goctl.go
Original file line number Diff line number Diff line change
Expand Up @@ -246,9 +246,8 @@ var (
Required: true,
},
cli.StringFlag{
Name: "secret",
Usage: "the image pull secret",
Required: true,
Name: "secret",
Usage: "the secret to image pull from registry",
},
cli.IntFlag{
Name: "requestCpu",
Expand Down
4 changes: 2 additions & 2 deletions tools/goctl/kube/deployment.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ spec:
volumeMounts:
- name: timezone
mountPath: /etc/localtime
imagePullSecrets:
{{if .Secret}}imagePullSecrets:
- name: {{.Secret}}
volumes:
{{end}}volumes:
- name: timezone
hostPath:
path: /usr/share/zoneinfo/Asia/Shanghai
Expand Down
10 changes: 9 additions & 1 deletion tools/goctl/kube/kube.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ package kube

import (
"errors"
"fmt"
"text/template"

"github.com/logrusorgru/aurora"
"github.com/tal-tech/go-zero/tools/goctl/util"
"github.com/urfave/cli"
)
Expand Down Expand Up @@ -53,7 +55,7 @@ func DeploymentCommand(c *cli.Context) error {
defer out.Close()

t := template.Must(template.New("deploymentTemplate").Parse(text))
return t.Execute(out, Deployment{
err = t.Execute(out, Deployment{
Name: c.String("name"),
Namespace: c.String("namespace"),
Image: c.String("image"),
Expand All @@ -70,6 +72,12 @@ func DeploymentCommand(c *cli.Context) error {
MinReplicas: c.Int("minReplicas"),
MaxReplicas: c.Int("maxReplicas"),
})
if err != nil {
return err
}

fmt.Println(aurora.Green("Done."))
return nil
}

func Category() string {
Expand Down

0 comments on commit acd48f0

Please sign in to comment.