Dockerfile-plugins 1.2 KB

123456789101112131415161718192021222324252627
  1. FROM golang:1.15.1 AS builder
  2. ARG VERSION
  3. ARG PLUGIN_TYPE
  4. ARG PLUGIN_NAME
  5. COPY . /go/kuiper
  6. WORKDIR /go/kuiper
  7. RUN apt update && apt install -y pkg-config libczmq-dev jq zip
  8. RUN set -e -u -x \
  9. && mkdir -p _plugins/$PLUGIN_TYPE/$PLUGIN_NAME \
  10. && for lib in $(cat etc/$PLUGIN_TYPE/$PLUGIN_NAME.json | jq -r ".libs[]"); do go get $lib; done \
  11. && case $PLUGIN_NAME in \
  12. influxdb | taos ) \
  13. go build --buildmode=plugin -tags plugins -o _plugins/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME@$VERSION.so plugins/$PLUGIN_TYPE/$PLUGIN_NAME.go \
  14. ;; \
  15. * ) \
  16. go build --buildmode=plugin -o _plugins/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME@$VERSION.so plugins/$PLUGIN_TYPE/$PLUGIN_NAME.go \
  17. ;; \
  18. esac \
  19. && go build --buildmode=plugin -o _plugins/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME@$VERSION.so plugins/$PLUGIN_TYPE/$PLUGIN_NAME.go \
  20. && if [ -f "etc/$PLUGIN_TYPE/$PLUGIN_NAME.yaml" ]; then cp etc/$PLUGIN_TYPE/$PLUGIN_NAME.yaml _plugins/$PLUGIN_TYPE/$PLUGIN_NAME; fi \
  21. && cd _plugins/$PLUGIN_TYPE/$PLUGIN_NAME \
  22. && zip -r ${PLUGIN_NAME}_$(go version | grep -o "linux/.*" | sed -r 's linux/(.*) \1 g').zip .