build.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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}-arm32v7-linux:${_grafana_version}" "${repo}-arm32v7-linux:${tag}"
  29. docker tag "${_docker_repo}-arm64v8-linux:${_grafana_version}" "${repo}-arm64v8-linux:${tag}"
  30. }
  31. docker_build "debian:stretch-slim" "grafana-latest.linux-x64.tar.gz" "${_docker_repo}:${_grafana_version}"
  32. docker_build "arm32v7/debian:stretch-slim" "grafana-latest.linux-armv7.tar.gz" "${_docker_repo}-arm32v7-linux:${_grafana_version}"
  33. docker_build "arm64v8/debian:stretch-slim" "grafana-latest.linux-arm64.tar.gz" "${_docker_repo}-arm64v8-linux:${_grafana_version}"
  34. # Tag as 'latest' for official release; otherwise tag as grafana/grafana:master
  35. if echo "$_grafana_tag" | grep -q "^v"; then
  36. docker_tag_all "${_docker_repo}" "latest"
  37. else
  38. docker_tag_all "${_docker_repo}" "master"
  39. docker tag "${_docker_repo}:${_grafana_version}" "grafana/grafana-dev:${_grafana_version}"
  40. fi