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.
|
|
|
FROM golang:{{.Version}}alpine AS builder
|
|
|
|
|
|
|
|
LABEL stage=gobuilder
|
|
|
|
|
|
|
|
ENV CGO_ENABLED 0
|
|
|
|
{{if .Chinese}}ENV GOPROXY https://goproxy.cn,direct
|
|
|
|
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
|
|
|
{{end}}{{if .HasTimezone}}
|
|
|
|
RUN apk update --no-cache && apk add --no-cache tzdata
|
|
|
|
{{end}}
|
|
|
|
WORKDIR /build
|
|
|
|
|
|
|
|
ADD go.mod .
|
|
|
|
ADD go.sum .
|
|
|
|
RUN go mod download
|
|
|
|
COPY . .
|
|
|
|
{{if .Argument}}COPY {{.GoRelPath}}/etc /app/etc
|
|
|
|
{{end}}RUN go build -ldflags="-s -w" -o /app/{{.ExeFile}} {{.GoMainFrom}}
|
|
|
|
|
|
|
|
|
|
|
|
FROM {{.BaseImage}}
|
|
|
|
|
|
|
|
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
|
|
|
{{if .HasTimezone}}COPY --from=builder /usr/share/zoneinfo/{{.Timezone}} /usr/share/zoneinfo/{{.Timezone}}
|
|
|
|
ENV TZ {{.Timezone}}
|
|
|
|
{{end}}
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=builder /app/{{.ExeFile}} /app/{{.ExeFile}}{{if .Argument}}
|
|
|
|
COPY --from=builder /app/etc /app/etc{{end}}
|
|
|
|
{{if .HasPort}}
|
|
|
|
EXPOSE {{.Port}}
|
|
|
|
{{end}}
|
|
|
|
CMD ["./{{.ExeFile}}"{{.Argument}}]
|