51 lines
1.1 KiB
Bash
Executable file
51 lines
1.1 KiB
Bash
Executable file
#!/bin/bash -e
|
|
#
|
|
# Build the docker container and push it to quay
|
|
# ./build-docker push
|
|
#
|
|
# Build the docker container locally without pushing to registry
|
|
# ./build-docker build
|
|
|
|
DOCKER_REGISTRY=${DOCKER_REGISTRY:=quay.io}
|
|
DOCKER_REPO=${DOCKER_REPO:=coreos/dex}
|
|
repo=$DOCKER_REGISTRY/$DOCKER_REPO
|
|
|
|
version=$(./git-version)
|
|
|
|
stage() {
|
|
echo -e "\033[36m----> $1\033[0m"
|
|
}
|
|
|
|
build() {
|
|
stage "build $repo:$version"
|
|
docker build -q --rm=true -t $repo:$version .
|
|
docker tag $repo:$version $repo:latest
|
|
}
|
|
|
|
push() {
|
|
stage "push image $repo:$version"
|
|
if [ -v $DOCKER_USER ] || [ -v $DOCKER_PASSWORD ]; then
|
|
echo "env variables not set: DOCKER_USER, DOCKER_PASSWORD. skipping login, assuming creds in .dockercfg"
|
|
else
|
|
echo logging in as $DOCKER_USER
|
|
docker login --username="$DOCKER_USER" --password="$DOCKER_PASSWORD" --email="dex@example.com" $DOCKER_REGISTRY
|
|
fi
|
|
|
|
docker push $repo:$version
|
|
docker push $repo:latest
|
|
}
|
|
|
|
clean() {
|
|
docker rmi $repo:$version
|
|
docker rmi $repo:latest
|
|
}
|
|
|
|
if [[ "clean" == "$1" ]]; then
|
|
clean
|
|
else
|
|
build
|
|
if [[ "push" == "$1" ]]; then
|
|
push
|
|
fi
|
|
fi
|
|
|