docker-test.sh 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #!/bin/sh
  2. export DEBIAN_FRONTEND=noninteractive
  3. wait_for() {
  4. host="${1}"
  5. port="${2}"
  6. name="${3}"
  7. timeout="30"
  8. if command -v nc > /dev/null ; then
  9. netcat="nc"
  10. elif command -v netcat > /dev/null ; then
  11. netcat="netcat"
  12. else
  13. printf "Unable to find a usable netcat command.\n"
  14. return 1
  15. fi
  16. printf "Waiting for %s on %s:%s ... " "${name}" "${host}" "${port}"
  17. sleep 30
  18. i=0
  19. while ! ${netcat} -z "${host}" "${port}"; do
  20. sleep 1
  21. if [ "$i" -gt "$timeout" ]; then
  22. printf "Timed out!\n"
  23. return 1
  24. fi
  25. i="$((i + 1))"
  26. done
  27. printf "OK\n"
  28. }
  29. if [ -z "$(command -v nc 2>/dev/null)" ] && [ -z "$(command -v netcat 2>/dev/null)" ]; then
  30. sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install -y netcat
  31. fi
  32. docker run -d --name=netdata \
  33. -p 19999:19999 \
  34. -v netdataconfig:/etc/netdata \
  35. -v netdatalib:/var/lib/netdata \
  36. -v netdatacache:/var/cache/netdata \
  37. -v /etc/passwd:/host/etc/passwd:ro \
  38. -v /etc/group:/host/etc/group:ro \
  39. -v /proc:/host/proc:ro \
  40. -v /sys:/host/sys:ro \
  41. -v /etc/os-release:/host/etc/os-release:ro \
  42. --cap-add SYS_PTRACE \
  43. --security-opt apparmor=unconfined \
  44. netdata/netdata:test
  45. wait_for localhost 19999 netdata || exit 1
  46. curl -sS http://127.0.0.1:19999/api/v1/info > ./response || exit 1
  47. cat ./response
  48. jq '.version' ./response || exit 1