The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
grafana/packaging/docker/push_to_docker_hub.sh

69 lines
2.1 KiB

#!/bin/sh
set -e
UBUNTU_BASE=0
TAG_SUFFIX=""
while [ "$1" != "" ]; do
case "$1" in
"--ubuntu")
UBUNTU_BASE=1
TAG_SUFFIX="-ubuntu"
echo "Ubuntu base image enabled"
shift
;;
* )
# unknown param causes args to be passed through to $@
break
;;
esac
done
_grafana_tag=${1:-}
_docker_repo=${2:-grafana/grafana}
# If the tag starts with v, treat this as an official release
if echo "$_grafana_tag" | grep -q "^v"; then
_grafana_version=$(echo "${_grafana_tag}" | cut -d "v" -f 2)
else
_grafana_version=$_grafana_tag
fi
echo "pushing ${_docker_repo}:${_grafana_version}${TAG_SUFFIX}"
export DOCKER_CLI_EXPERIMENTAL=enabled
docker_push_all () {
repo=$1
tag=$2
# Push each image individually
docker push "${repo}:${tag}${TAG_SUFFIX}"
docker push "${repo}-arm32v7-linux:${tag}${TAG_SUFFIX}"
docker push "${repo}-arm64v8-linux:${tag}${TAG_SUFFIX}"
# Create and push a multi-arch manifest
docker manifest create "${repo}:${tag}${TAG_SUFFIX}" \
"${repo}:${tag}${TAG_SUFFIX}" \
"${repo}-arm32v7-linux:${tag}${TAG_SUFFIX}" \
"${repo}-arm64v8-linux:${tag}${TAG_SUFFIX}"
docker manifest push "${repo}:${tag}${TAG_SUFFIX}"
}
if echo "$_grafana_tag" | grep -q "^v" && echo "$_grafana_tag" | grep -vq "beta"; then
echo "pushing ${_docker_repo}:latest${TAG_SUFFIX}"
docker_push_all "${_docker_repo}" "latest"
docker_push_all "${_docker_repo}" "${_grafana_version}"
# Push to the grafana-dev repository with the expected tag
# for running the end to end tests successfully
docker push "grafana/grafana-dev:${_grafana_tag}${TAG_SUFFIX}"
elif echo "$_grafana_tag" | grep -q "^v" && echo "$_grafana_tag" | grep -q "beta"; then
docker_push_all "${_docker_repo}" "${_grafana_version}"
# Push to the grafana-dev repository with the expected tag
# for running the end to end tests successfully
docker push "grafana/grafana-dev:${_grafana_tag}${TAG_SUFFIX}"
elif echo "$_grafana_tag" | grep -q "main"; then
docker_push_all "${_docker_repo}" "main"
docker push "grafana/grafana-dev:${_grafana_version}${TAG_SUFFIX}"
fi