asg-server/scripts/docker-build.sh
Aleksandr Soloshenko 159523154a Initial commit
2022-10-06 09:12:01 +07:00

67 lines
1.4 KiB
Bash

#!/bin/bash
if [ -e "$(dirname $0)/env.sh" ]; then
source "$(dirname $0)/env.sh"
fi
if [ -n "$BITBUCKET_TAG" ]; then
GIT_TAG="$BITBUCKET_TAG"
else
GIT_TAG=$(git describe --exact-match --tags $(git log -n1 --pretty='%h'))
fi
if [ -n "$BITBUCKET_BRANCH" ]; then
GIT_BRANCH="$BITBUCKET_BRANCH"
else
GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
fi
TAG=${GIT_TAG:-v"${GIT_BRANCH}"}
if [ -z "$TAG" ]; then
exit 0
fi
if [ -z "$APP" ]; then
echo "Need APP environment var"
exit 1
fi
DOCKER_IMAGE="${DOCKER_CR}/${APP}"
DOCKER_PARAMS=()
if [ -n "$DOCKER_FILE" ]; then
DOCKER_PARAMS+=(--file "$DOCKER_FILE")
fi
if [ -n "$DOCKER_TARGET" ]; then
DOCKER_PARAMS+=(--target "$DOCKER_TARGET")
fi
FULL_VERSION=${TAG:1}
PARTS=$(echo ${FULL_VERSION} | tr "." "\n")
VERSION=
docker build ${DOCKER_PARAMS[*]} -t ${DOCKER_IMAGE}:${FULL_VERSION} --build-arg SSH_PRV_KEY="$SSH_PRV_KEY" --build-arg APP="$APP" .
docker push ${DOCKER_IMAGE}:${FULL_VERSION}
for V in $PARTS
do
if [ -n "$VERSION" ];
then
VERSION=${VERSION}.
fi
VERSION=${VERSION}${V}
if [ "$FULL_VERSION" = "$VERSION" ];
then
continue
fi
docker tag ${DOCKER_IMAGE}:${FULL_VERSION} ${DOCKER_IMAGE}:${VERSION}
docker push ${DOCKER_IMAGE}:${VERSION}
done
if [[ "$TAG" != "v${GIT_BRANCH}" ]]; then
docker tag ${DOCKER_IMAGE}:${FULL_VERSION} ${DOCKER_IMAGE}:latest
docker push ${DOCKER_IMAGE}:latest
fi