FROM golang:1.17 as builder

ENV PROJECT=go-plugins
ENV WORKDIR=/GoProject/src/$PROJECT

WORKDIR $WORKDIR
ENV GOPATH=/GoProject
ENV GO111MODULE=off

COPY cmd $WORKDIR/cmd
COPY internal $WORKDIR/internal
COPY vendor $WORKDIR/vendor

RUN mkdir -p /telegraf

RUN CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-w -s -extldflags "-static"' -tags netgo -o /telegraf/dolphindb-output ./cmd/telegraf-outputs/telegraf-outputs.go

FROM hairyhenderson/upx:3.94 as upx
COPY --from=builder /telegraf /telegraf
RUN upx -9 /telegraf/dolphindb-output

FROM telegraf:1.23.0 as prod
ARG version
ENV COMMITID=$version

COPY --from=upx /telegraf/dolphindb-output /usr/local/bin/telegraf-dolphindb-output