optimize dockerfile generation (#284)

master v1.1.1
Kevin Wan 4 years ago committed by GitHub
parent f919bc6713
commit acd48f0abb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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")
@ -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
@ -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(),
})
}

@ -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}}
@ -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}}

@ -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",

@ -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

@ -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"
)
@ -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"),
@ -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 {

Loading…
Cancel
Save