Dockerfile 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. # TODO: Create a netdata/package-builder:alpine9
  2. #FROM netdata/package-buidler:alpine AS build
  3. FROM alpine:3.9 AS build
  4. # Install Dependencies
  5. RUN apk add --no-cache -U alpine-sdk bash curl libuv-dev zlib-dev \
  6. util-linux-dev libmnl-dev gcc make git autoconf \
  7. automake pkgconfig python logrotate openssl-dev cmake
  8. # Pass optional ./netdata-installer.sh args with --build-arg INSTALLER_ARGS=...
  9. ARG INSTALLER_ARGS=""
  10. # Copy Sources
  11. # Can also bind-mount sources with:
  12. # $ docker run -v $PWD:/netdata
  13. WORKDIR /netdata
  14. COPY . .
  15. # Build
  16. RUN ./netdata-installer.sh --dont-wait --dont-start-it --disable-go "${INSTALLER_ARGS}"
  17. FROM alpine:3.9 AS runtime
  18. # Install runtime dependeices
  19. RUN apk --no-cache -U add curl bash libuv zlib util-linux libmnl python
  20. # Create netdata user/group
  21. RUN addgroup -S netdata && \
  22. adduser -D -S -h /var/empty -s /bin/false -G netdata netdata
  23. # Copy binary from build layer
  24. COPY --from=build /usr/sbin/netdata /usr/sbin/netdata
  25. # Copy configuration files from build layer
  26. COPY --from=build /etc/netdata/ /etc/netdata/
  27. COPY --from=build /usr/lib/netdata/ /usr/lib/netdata/
  28. # Copy assets from build layer
  29. COPY --from=build /usr/share/netdata/ /usr/share/netdata/
  30. # Create some directories netdata needs
  31. RUN mkdir -p \
  32. /etc/netdata \
  33. /var/log/netdata \
  34. /var/lib/netdata \
  35. /var/cache/netdata \
  36. /usr/lib/netdata/conf.d \
  37. /usr/libexec/netdata/plugins.d
  38. # Fix permissions/ownerships
  39. RUN chown -R netdata:netdata \
  40. /etc/netdata/ \
  41. /usr/lib/netdata/ \
  42. /usr/share/netdata/ \
  43. /var/log/netdata \
  44. /var/lib/netdata \
  45. /var/cache/netdata \
  46. /usr/libexec/netdata
  47. VOLUME /etc/netdata
  48. VOLUME /var/lib/netdata
  49. VOLUME /var/log/netdata
  50. EXPOSE 19999/tcp
  51. USER netdata
  52. CMD ["/usr/sbin/netdata", "-D"]