You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
921 B
Go
46 lines
921 B
Go
package docker
|
|
|
|
import (
|
|
"github.com/tal-tech/go-zero/tools/goctl/util"
|
|
"github.com/urfave/cli"
|
|
)
|
|
|
|
const (
|
|
category = "docker"
|
|
dockerTemplateFile = "docker.tpl"
|
|
dockerTemplate = `FROM golang:alpine AS builder
|
|
|
|
LABEL stage=gobuilder
|
|
|
|
ENV CGO_ENABLED 0
|
|
ENV GOOS linux
|
|
ENV GOPROXY https://goproxy.cn,direct
|
|
|
|
WORKDIR /build/zero
|
|
COPY . .
|
|
RUN sh -c "[ -f go.mod ]" || exit
|
|
COPY {{.goRelPath}}/etc /app/etc
|
|
RUN go build -ldflags="-s -w" -o /app/{{.exeFile}} {{.goRelPath}}/{{.goFile}}
|
|
|
|
|
|
FROM alpine
|
|
|
|
RUN apk update --no-cache
|
|
RUN apk add --no-cache ca-certificates
|
|
RUN apk add --no-cache tzdata
|
|
ENV TZ Asia/Shanghai
|
|
|
|
WORKDIR /app
|
|
COPY --from=builder /app/{{.exeFile}} /app/{{.exeFile}}
|
|
COPY --from=builder /app/etc /app/etc
|
|
|
|
CMD ["./{{.exeFile}}"{{.argument}}]
|
|
`
|
|
)
|
|
|
|
func GenTemplates(_ *cli.Context) error {
|
|
return util.InitTemplates(category, map[string]string{
|
|
dockerTemplateFile: dockerTemplate,
|
|
})
|
|
}
|