Ocelot-Social/scripts/docker_push.sh
roschaefer 41aee3af33 Exclude broken maintenance-worker docker image
The Dockerfile is still using `apk` instead of `apt-get` (Debian slim).
So that's why our build server was never successfully pushing the
`maintenance-worker` image.
2019-09-18 15:14:22 +02:00

32 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
ROOT_DIR=$(dirname "$0")/..
DOCKER_CLI_EXPERIMENTAL=enabled
# BUILD_COMMIT=${TRAVIS_COMMIT:-$(git rev-parse HEAD)}
IFS='.' read -r major minor patch < $ROOT_DIR/VERSION
apps=(nitro-web nitro-backend neo4j maintenance)
tags=(latest $major $major.$minor $major.$minor.$patch)
# These three docker images have already been built by now:
# docker build --build-arg BUILD_COMMIT=$BUILD_COMMIT --target production -t humanconnection/nitro-backend:latest $ROOT_DIR/backend
# docker build --build-arg BUILD_COMMIT=$BUILD_COMMIT --target production -t humanconnection/nitro-web:latest $ROOT_DIR/webapp
# docker build --build-arg BUILD_COMMIT=$BUILD_COMMIT -t humanconnection/neo4j:latest $ROOT_DIR/neo4j
docker build -t humanconnection/maintenance:latest $ROOT_DIR/webapp/ -f $ROOT_DIR/webapp/Dockerfile.maintenance
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
for app in "${apps[@]}"
do
for tag in "${tags[@]}"
do
SOURCE="humanconnection/${app}:latest"
TARGET="humanconnection/${app}:${tag}"
if docker manifest inspect $TARGET &> /dev/null; then
echo "Docker image ${TARGET} already present, skipping ..."
else
docker tag $SOURCE $TARGET
docker push $TARGET
fi
done
done