@@ -8,27 +8,33 @@ ENV GOPROXY https://goproxy.cn,direct
8
8
RUN apk update --no-cache && apk add --no-cache tzdata
9
9
RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
10
10
RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
11
+ RUN addgroup -g 1000 -S app && adduser -u 1000 -S app -G app
11
12
12
13
WORKDIR /build
13
14
14
- ADD go.mod .
15
- ADD go.sum .
16
- RUN go mod download
17
15
COPY . .
16
+ RUN go mod download
18
17
RUN go build -ldflags="-s -w" -o /app/goctl ./goctl.go
19
18
20
19
21
20
FROM golang:alpine
22
21
23
22
RUN apk update --no-cache && apk add --no-cache protoc
24
23
25
- COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
26
- COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Shanghai
27
- COPY --from=builder /go/bin/protoc-gen-go /usr/bin/protoc-gen-go
28
- COPY --from=builder /go/bin/protoc-gen-go-grpc /usr/bin/protoc-gen-go-grpc
24
+ COPY --from=builder /etc/passwd /etc/group /etc/
25
+ COPY --from=builder /usr/share/zoneinfo/ /usr/share/zoneinfo/
26
+ COPY --from=builder --chown=1000:1000 /go/bin/protoc-gen-go* /app/goctl /usr/local/bin/
29
27
ENV TZ Asia/Shanghai
30
28
31
29
WORKDIR /app
32
- COPY --from=builder /app/goctl /usr/bin/goctl
30
+ USER app
31
+
32
+ LABEL org.opencontainers.image.authors="Kevin Wan"
33
+ LABEL org.opencontainers.image.base.name="docker.io/library/golang:alpine"
34
+ LABEL org.opencontainers.image.description="A cloud-native Go microservices framework with cli tool for productivity."
35
+ LABEL org.opencontainers.image.licenses="MIT"
36
+ LABEL org.opencontainers.image.source="https://github.com/zeromicro/go-zero"
37
+ LABEL org.opencontainers.image.title="goctl (cli)"
38
+ LABEL org.opencontainers.image.version="v1.6.0"
33
39
34
- CMD ["goctl" ]
40
+ ENTRYPOINT ["/usr/local/bin/ goctl" ]
0 commit comments