123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package gen
- import (
- "path/filepath"
- "strings"
- "text/template"
- "github.com/tal-tech/go-zero/tools/goctl/util"
- "github.com/tal-tech/go-zero/tools/goctl/vars"
- )
- func GenerateDockerfile(goFile string, args ...string) error {
- projPath, err := getFilePath(filepath.Dir(goFile))
- if err != nil {
- return err
- }
- pos := strings.IndexByte(projPath, '/')
- if pos >= 0 {
- projPath = projPath[pos+1:]
- }
- out, err := util.CreateIfNotExist("Dockerfile")
- if err != nil {
- return err
- }
- defer out.Close()
- var builder strings.Builder
- for _, arg := range args {
- builder.WriteString(`, "` + arg + `"`)
- }
- t := template.Must(template.New("dockerfile").Parse(dockerTemplate))
- return t.Execute(out, map[string]string{
- "projectName": vars.ProjectName,
- "goRelPath": projPath,
- "goFile": goFile,
- "exeFile": util.FileNameWithoutExt(goFile),
- "argument": builder.String(),
- })
- }
|