build.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/bin/sh
  2. _grafana_tag=${1:-}
  3. _docker_repo=${2:-grafana/grafana}
  4. # If the tag starts with v, treat this as a official release
  5. if echo "$_grafana_tag" | grep -q "^v"; then
  6. _grafana_version=$(echo "${_grafana_tag}" | cut -d "v" -f 2)
  7. else
  8. _grafana_version=$_grafana_tag
  9. fi
  10. echo "Building ${_docker_repo}:${_grafana_version}"
  11. export DOCKER_CLI_EXPERIMENTAL=enabled
  12. # Build grafana image for a specific arch
  13. docker_build () {
  14. base_image=$1
  15. grafana_tgz=$2
  16. tag=$3
  17. docker build \
  18. --build-arg BASE_IMAGE=${base_image} \
  19. --build-arg GRAFANA_TGZ=${grafana_tgz} \
  20. --tag "${tag}" \
  21. --no-cache=true .
  22. }
  23. # Tag docker images of all architectures
  24. docker_tag_all () {
  25. repo=$1
  26. tag=$2
  27. docker tag "${_docker_repo}:${_grafana_version}" "${repo}:${tag}"
  28. docker tag "${_docker_repo}-arm32v6-linux:${_grafana_version}" "${repo}-arm32v6-linux:${tag}"
  29. docker tag "${_docker_repo}-arm32v7-linux:${_grafana_version}" "${repo}-arm32v7-linux:${tag}"
  30. docker tag "${_docker_repo}-arm64v8-linux:${_grafana_version}" "${repo}-arm64v8-linux:${tag}"
  31. }
  32. docker_build "debian:stretch-slim" "grafana-latest.linux-x64.tar.gz" "${_docker_repo}:${_grafana_version}"
  33. docker_build "arm32v6/debian:stretch-slim" "grafana-latest.linux-armv6.tar.gz" "${_docker_repo}-arm32v6-linux:${_grafana_version}"
  34. docker_build "arm32v7/debian:stretch-slim" "grafana-latest.linux-armv7.tar.gz" "${_docker_repo}-arm32v7-linux:${_grafana_version}"
  35. docker_build "arm64v8/debian:stretch-slim" "grafana-latest.linux-arm64.tar.gz" "${_docker_repo}-arm64v8-linux:${_grafana_version}"
  36. # Tag as 'latest' for official release; otherwise tag as grafana/grafana:master
  37. if echo "$_grafana_tag" | grep -q "^v"; then
  38. docker_tag_all "${_docker_repo}" "latest"
  39. else
  40. docker_tag_all "${_docker_repo}" "master"
  41. docker tag "${_docker_repo}:${_grafana_version}" "grafana/grafana-dev:${_grafana_version}"
  42. fi