docker-test.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. docker ps -a
  24. echo "::group::Netdata container logs"
  25. docker logs netdata 2>&1
  26. echo "::endgroup::"
  27. return 1
  28. fi
  29. i="$((i + 1))"
  30. done
  31. printf "OK\n"
  32. }
  33. if [ -z "$(command -v nc 2>/dev/null)" ] && [ -z "$(command -v netcat 2>/dev/null)" ]; then
  34. sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install -y netcat
  35. fi
  36. docker run -d --name=netdata \
  37. -p 19999:19999 \
  38. -v netdataconfig:/etc/netdata \
  39. -v netdatalib:/var/lib/netdata \
  40. -v netdatacache:/var/cache/netdata \
  41. -v /etc/passwd:/host/etc/passwd:ro \
  42. -v /etc/group:/host/etc/group:ro \
  43. -v /proc:/host/proc:ro \
  44. -v /sys:/host/sys:ro \
  45. -v /etc/os-release:/host/etc/os-release:ro \
  46. --cap-add SYS_PTRACE \
  47. --security-opt apparmor=unconfined \
  48. netdata/netdata:test
  49. wait_for localhost 19999 netdata || exit 1
  50. curl -sS http://127.0.0.1:19999/api/v1/info > ./response || exit 1
  51. cat ./response
  52. jq '.version' ./response || exit 1