52 lines
1.5 KiB
Bash
Executable File
52 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
readonly DOCKERHUB_MIRROR_REGISTRY="${DOCKERHUB_MIRROR_REGISTRY:?must be set}"
|
|
readonly DOCKERHUB_MIRROR_REGISTRY_USERNAME="${DOCKERHUB_MIRROR_REGISTRY_USERNAME:?must be set}"
|
|
readonly DOCKERHUB_MIRROR_REGISTRY_PASSWORD="${DOCKERHUB_MIRROR_REGISTRY_PASSWORD:?must be set}"
|
|
|
|
# shellcheck source=common.sh
|
|
source "$(dirname "$0")/common.sh"
|
|
repository=$(pwd)/distribution-repository
|
|
|
|
start_docker() {
|
|
pushd credhub-server >/dev/null
|
|
echo "{\"registry-mirrors\": [\"https://$DOCKERHUB_MIRROR_REGISTRY\"]}" > /etc/docker/daemon.json
|
|
service cgroupfs-mount start
|
|
service docker start
|
|
|
|
# Work around https://github.com/moby/moby/issues/30880
|
|
cat >> /etc/hosts << EOF
|
|
127.0.0.1 index.docker.io
|
|
127.0.0.1 registry-1.docker.io
|
|
127.0.0.1 docker.io
|
|
EOF
|
|
mkdir -p "$HOME/.docker"
|
|
jq --arg username "$DOCKERHUB_MIRROR_REGISTRY_USERNAME" \
|
|
--arg password "$DOCKERHUB_MIRROR_REGISTRY_PASSWORD" \
|
|
'reduce .[] as $registry ({"auths": {}}; .auths += {($registry): {"auth": [$username, $password] | join(":") | @base64}})' \
|
|
<<< "[\"index.docker.io\", \"$DOCKERHUB_MIRROR_REGISTRY\"]" \
|
|
> "$HOME/.docker/config.json"
|
|
|
|
docker-compose up --detach
|
|
trap "stop_docker" EXIT
|
|
popd >/dev/null
|
|
}
|
|
|
|
stop_docker() {
|
|
pushd credhub-server >/dev/null
|
|
docker-compose stop
|
|
service cgroupfs-mount stop
|
|
service docker stop
|
|
popd >/dev/null
|
|
}
|
|
|
|
main() {
|
|
cd git-repo >/dev/null
|
|
start_docker
|
|
./gradlew build publish -PpublicationRepository="${repository}" -PintegrationTests --no-parallel
|
|
}
|
|
|
|
main
|