mirror of https://github.com/grafana/grafana
parent
96759e39a6
commit
702d449001
@ -1,25 +1,49 @@ |
||||
#!/bin/sh |
||||
|
||||
_grafana_tag=$1 |
||||
_grafana_tag=${1:-} |
||||
_docker_repo=${2:-grafana/grafana} |
||||
|
||||
# If the tag starts with v, treat this as a official release |
||||
if echo "$_grafana_tag" | grep -q "^v"; then |
||||
_grafana_version=$(echo "${_grafana_tag}" | cut -d "v" -f 2) |
||||
_docker_repo=${2:-grafana/grafana} |
||||
else |
||||
_grafana_version=$_grafana_tag |
||||
_docker_repo=${2:-grafana/grafana-dev} |
||||
fi |
||||
|
||||
echo "Building ${_docker_repo}:${_grafana_version}" |
||||
|
||||
docker build \ |
||||
--tag "${_docker_repo}:${_grafana_version}" \ |
||||
--no-cache=true . |
||||
export DOCKER_CLI_EXPERIMENTAL=enabled |
||||
|
||||
# Build grafana image for a specific arch |
||||
docker_build () { |
||||
base_image=$1 |
||||
grafana_tgz=$2 |
||||
tag=$3 |
||||
|
||||
docker build \ |
||||
--build-arg BASE_IMAGE=${base_image} \ |
||||
--build-arg GRAFANA_TGZ=${grafana_tgz} \ |
||||
--tag "${tag}" \ |
||||
--no-cache=true . |
||||
} |
||||
|
||||
# Tag docker images of all architectures |
||||
docker_tag_all () { |
||||
repo=$1 |
||||
tag=$2 |
||||
docker tag "${_docker_repo}:${_grafana_version}" "${repo}:${tag}" |
||||
docker tag "${_docker_repo}-arm32v7-linux:${_grafana_version}" "${repo}-arm32v7-linux:${tag}" |
||||
docker tag "${_docker_repo}-arm64v8-linux:${_grafana_version}" "${repo}-arm64v8-linux:${tag}" |
||||
} |
||||
|
||||
docker_build "debian:stretch-slim" "grafana-latest.linux-x64.tar.gz" "${_docker_repo}:${_grafana_version}" |
||||
docker_build "arm32v7/debian:stretch-slim" "grafana-latest.linux-armv7.tar.gz" "${_docker_repo}-arm32v7-linux:${_grafana_version}" |
||||
docker_build "arm64v8/debian:stretch-slim" "grafana-latest.linux-arm64.tar.gz" "${_docker_repo}-arm64v8-linux:${_grafana_version}" |
||||
|
||||
# Tag as 'latest' for official release; otherwise tag as grafana/grafana:master |
||||
if echo "$_grafana_tag" | grep -q "^v"; then |
||||
docker tag "${_docker_repo}:${_grafana_version}" "${_docker_repo}:latest" |
||||
docker_tag_all "${_docker_repo}" "latest" |
||||
else |
||||
docker tag "${_docker_repo}:${_grafana_version}" "grafana/grafana:master" |
||||
docker_tag_all "${_docker_repo}" "master" |
||||
docker tag "${_docker_repo}:${_grafana_version} grafana/grafana-dev:${_grafana_version}" |
||||
fi |
||||
|
@ -1,24 +1,46 @@ |
||||
#!/bin/sh |
||||
set -e |
||||
|
||||
_grafana_tag=$1 |
||||
_grafana_tag=${1:-} |
||||
_docker_repo=${2:-grafana/grafana} |
||||
|
||||
# If the tag starts with v, treat this as a official release |
||||
if echo "$_grafana_tag" | grep -q "^v"; then |
||||
_grafana_version=$(echo "${_grafana_tag}" | cut -d "v" -f 2) |
||||
_docker_repo=${2:-grafana/grafana} |
||||
else |
||||
_grafana_version=$_grafana_tag |
||||
_docker_repo=${2:-grafana/grafana-dev} |
||||
fi |
||||
|
||||
export DOCKER_CLI_EXPERIMENTAL=enabled |
||||
|
||||
echo "pushing ${_docker_repo}:${_grafana_version}" |
||||
docker push "${_docker_repo}:${_grafana_version}" |
||||
|
||||
|
||||
docker_push_all () { |
||||
repo=$1 |
||||
tag=$2 |
||||
|
||||
# Push each image individually |
||||
docker push "${repo}:${tag}" |
||||
docker push "${repo}-arm32v7-linux:${tag}" |
||||
docker push "${repo}-arm64v8-linux:${tag}" |
||||
|
||||
# Create and push a multi-arch manifest |
||||
docker manifest create "${repo}:${tag}" \ |
||||
"${repo}:${tag}" \ |
||||
"${repo}-arm32v7-linux:${tag}" \ |
||||
"${repo}-arm64v8-linux:${tag}" |
||||
|
||||
docker manifest push "${repo}:${tag}" |
||||
} |
||||
|
||||
if echo "$_grafana_tag" | grep -q "^v" && echo "$_grafana_tag" | grep -vq "beta"; then |
||||
echo "pushing ${_docker_repo}:latest" |
||||
docker push "${_docker_repo}:latest" |
||||
docker_push_all "${_docker_repo}" "latest" |
||||
docker_push_all "${_docker_repo}" "${_grafana_version}" |
||||
elif echo "$_grafana_tag" | grep -q "^v" && echo "$_grafana_tag" | grep -q "beta"; then |
||||
docker_push_all "${_docker_repo}" "${_grafana_version}" |
||||
elif echo "$_grafana_tag" | grep -q "master"; then |
||||
echo "pushing grafana/grafana:master" |
||||
docker push grafana/grafana:master |
||||
docker_push_all "grafana/grafana" "master" |
||||
docker push "grafana/grafana-dev:${_grafana_version}" |
||||
fi |
||||
|
Loading…
Reference in new issue