fix dockerfile generation bug (#277)
This commit is contained in:
@@ -16,9 +16,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
etcDir = "etc"
|
dockerfileName = "Dockerfile"
|
||||||
yamlEtx = ".yaml"
|
etcDir = "etc"
|
||||||
cstOffset = 60 * 60 * 8 // 8 hours offset for Chinese Standard Time
|
yamlEtx = ".yaml"
|
||||||
|
cstOffset = 60 * 60 * 8 // 8 hours offset for Chinese Standard Time
|
||||||
)
|
)
|
||||||
|
|
||||||
type Docker struct {
|
type Docker struct {
|
||||||
@@ -26,6 +27,7 @@ type Docker struct {
|
|||||||
GoRelPath string
|
GoRelPath string
|
||||||
GoFile string
|
GoFile string
|
||||||
ExeFile string
|
ExeFile string
|
||||||
|
HasArgs bool
|
||||||
Argument string
|
Argument string
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,12 +98,16 @@ func generateDockerfile(goFile string, args ...string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
pos := strings.IndexByte(projPath, '/')
|
if len(projPath) == 0 {
|
||||||
if pos >= 0 {
|
projPath = "."
|
||||||
projPath = projPath[pos+1:]
|
} else {
|
||||||
|
pos := strings.IndexByte(projPath, os.PathSeparator)
|
||||||
|
if pos >= 0 {
|
||||||
|
projPath = projPath[pos+1:]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
out, err := util.CreateIfNotExist("Dockerfile")
|
out, err := util.CreateIfNotExist(dockerfileName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -124,6 +130,7 @@ func generateDockerfile(goFile string, args ...string) error {
|
|||||||
GoRelPath: projPath,
|
GoRelPath: projPath,
|
||||||
GoFile: goFile,
|
GoFile: goFile,
|
||||||
ExeFile: util.FileNameWithoutExt(filepath.Base(goFile)),
|
ExeFile: util.FileNameWithoutExt(filepath.Base(goFile)),
|
||||||
|
HasArgs: builder.Len() > 0,
|
||||||
Argument: builder.String(),
|
Argument: builder.String(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ ADD go.mod .
|
|||||||
ADD go.sum .
|
ADD go.sum .
|
||||||
RUN go mod download
|
RUN go mod download
|
||||||
COPY . .
|
COPY . .
|
||||||
COPY {{.GoRelPath}}/etc /app/etc
|
{{if .HasArgs}}COPY {{.GoRelPath}}/etc /app/etc
|
||||||
RUN go build -ldflags="-s -w" -o /app/{{.ExeFile}} {{.GoRelPath}}/{{.GoFile}}
|
{{end}}RUN go build -ldflags="-s -w" -o /app/{{.ExeFile}} {{.GoRelPath}}/{{.GoFile}}
|
||||||
|
|
||||||
|
|
||||||
FROM alpine
|
FROM alpine
|
||||||
@@ -33,8 +33,8 @@ ENV TZ Asia/Shanghai
|
|||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY --from=builder /app/{{.ExeFile}} /app/{{.ExeFile}}
|
COPY --from=builder /app/{{.ExeFile}} /app/{{.ExeFile}}
|
||||||
COPY --from=builder /app/etc /app/etc
|
{{if .HasArgs}}COPY --from=builder /app/etc /app/etc
|
||||||
|
{{end}}
|
||||||
CMD ["./{{.ExeFile}}"{{.Argument}}]
|
CMD ["./{{.ExeFile}}"{{.Argument}}]
|
||||||
`
|
`
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
BuildVersion = "20201125"
|
BuildVersion = "1.1.1"
|
||||||
commands = []cli.Command{
|
commands = []cli.Command{
|
||||||
{
|
{
|
||||||
Name: "api",
|
Name: "api",
|
||||||
|
|||||||
@@ -60,7 +60,6 @@ func FindGoModPath(dir string) (string, bool) {
|
|||||||
var hasGoMod = false
|
var hasGoMod = false
|
||||||
for {
|
for {
|
||||||
if FileExists(filepath.Join(tempPath, goModeIdentifier)) {
|
if FileExists(filepath.Join(tempPath, goModeIdentifier)) {
|
||||||
tempPath = filepath.Dir(tempPath)
|
|
||||||
rootPath = strings.TrimPrefix(absDir[len(tempPath):], "/")
|
rootPath = strings.TrimPrefix(absDir[len(tempPath):], "/")
|
||||||
hasGoMod = true
|
hasGoMod = true
|
||||||
break
|
break
|
||||||
|
|||||||
Reference in New Issue
Block a user