optimize dockerfile generation (#284)

This commit is contained in:
Kevin Wan
2020-12-12 16:53:06 +08:00
committed by GitHub
parent f919bc6713
commit acd48f0abb
5 changed files with 23 additions and 13 deletions

View File

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

View File

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