Dockerfile-plugins 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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 set -e -u -x \
  8. && apt-get update \
  9. && apt-get install -y pkg-config libczmq-dev jq zip --assume-yes apt-utils
  10. RUN set -e -u -x \
  11. && mkdir -p _plugins/$PLUGIN_TYPE/$PLUGIN_NAME \
  12. && for lib in $(cat etc/$PLUGIN_TYPE/$PLUGIN_NAME.json | jq -r ".libs[]"); do go get $lib; done \
  13. && case $PLUGIN_NAME in \
  14. influxdb ) \
  15. go build -trimpath --buildmode=plugin -tags plugins -o plugins/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME@$VERSION.so plugins/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME.go \
  16. ;; \
  17. tdengine ) \
  18. if [ "$(uname -m)" = "x86_64" ]; then \
  19. wget "https://www.taosdata.com/download/download-all.php?pkgType=tdengine_linux&pkgName=TDengine-client-2.0.19.1-Linux-x64.tar.gz" -O /tmp/TDengine-client-2.0.19.1.tar.gz; \
  20. fi; \
  21. if [ "$(uname -m)" = "aarch64" ]; then \
  22. wget "https://www.taosdata.com/download/download-all.php?pkgType=tdengine_linux&pkgName=TDengine-client-2.0.19.1-Linux-aarch64.tar.gz" -O /tmp/TDengine-client-2.0.19.1.tar.gz; \
  23. fi; \
  24. tar -zxvf /tmp/TDengine-client-2.0.19.1.tar.gz \
  25. && cd TDengine-client-2.0.19.1 && ./install_client.sh && cd - \
  26. && go build -trimpath --buildmode=plugin -tags plugins -o plugins/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME@$VERSION.so plugins/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME.go \
  27. ;; \
  28. labelImage ) \
  29. git clone -b v2.2.0-rc3 --depth 1 https://github.com/tensorflow/tensorflow.git /tensorflow; \
  30. CGO_CFLAGS=-I/tensorflow CGO_LDFLAGS=-L/go/kuiper/plugins/functions/labelImage/lib go build -trimpath --buildmode=plugin -o plugins/functions/labelImage/labelImage.so plugins/functions/labelImage/*.go \
  31. ;; \
  32. * ) \
  33. go build -trimpath --buildmode=plugin -o plugins/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME@$VERSION.so plugins/$PLUGIN_TYPE/$PLUGIN_NAME/*.go \
  34. ;; \
  35. esac \
  36. && if [ -f "etc/$PLUGIN_TYPE/$PLUGIN_NAME.yaml" ]; then cp etc/$PLUGIN_TYPE/$PLUGIN_NAME.yaml plugins/$PLUGIN_TYPE/$PLUGIN_NAME; fi \
  37. && cd plugins/$PLUGIN_TYPE/$PLUGIN_NAME \
  38. && zip -r ${PLUGIN_NAME}_$(go version | grep -o "linux/.*" | sed -r 's linux/(.*) \1 g').zip .