Dockerfile-alpine 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. FROM golang:1.15.1-alpine AS builder
  2. COPY . /go/kuiper
  3. WORKDIR /go/kuiper
  4. RUN apk add gcc make git libc-dev binutils-gold pkgconfig zeromq-dev
  5. RUN go build -o kuiper_conf_util deploy/docker/conf_util.go \
  6. && if [ "$(uname -m)" = "x86_64" ]; then apk add upx && upx ./kuiper_conf_util; fi
  7. RUN make build_with_edgex
  8. FROM alpine:3.12
  9. # Set environment vars
  10. ENV MAINTAINER="emqx.io" \
  11. KUIPER_HOME="/kuiper" \
  12. KUIPER__BASIC__CONSOLELOG=true
  13. # These vars are not persisted in the final image layer
  14. ARG KUIPER_USER="kuiper"
  15. ARG KUIPER_USER_ID="1001"
  16. # (root) Add packages and "kuiper" user
  17. RUN apk add sed libzmq
  18. COPY ./deploy/docker/docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
  19. COPY --from=builder /go/kuiper/kuiper_conf_util /usr/bin/kuiper_conf_util
  20. COPY --from=builder /go/kuiper/_build/kuiper-* /kuiper/
  21. WORKDIR ${KUIPER_HOME}
  22. # Set appropriate ownership to allow binary full access to KUIPER_HOME dir
  23. RUN adduser -DH -s /sbin/nologin -u ${KUIPER_USER_ID} ${KUIPER_USER} && \
  24. chown -Rh ${KUIPER_USER}:${KUIPER_USER} ${KUIPER_HOME} && \
  25. mkdir -p /usr/local/taos && \
  26. chown -Rh ${KUIPER_USER}:${KUIPER_USER} /usr/local/taos
  27. # Run the kuiper process under the kuiper user
  28. USER ${KUIPER_USER}
  29. VOLUME ["${KUIPER_HOME}/etc", "${KUIPER_HOME}/data", "${KUIPER_HOME}/plugins", "${KUIPER_HOME}/log"]
  30. EXPOSE 9081 20498
  31. ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
  32. CMD ["./bin/kuiperd"]