mirror of
https://github.com/VinylDNS/vinyldns
synced 2025-08-22 02:02:14 +00:00
53 lines
1.7 KiB
Bash
53 lines
1.7 KiB
Bash
|
#!/bin/bash
|
||
|
######################################################################
|
||
|
# Copies the contents of `docker` into target/scala-2.12
|
||
|
# to start up dependent services via docker compose. Once
|
||
|
# dependent services are started up, the fat jar built by sbt assembly
|
||
|
# is loaded into a docker container. The api will be available
|
||
|
# by default on port 9000
|
||
|
######################################################################
|
||
|
|
||
|
DIR=$( cd $(dirname $0) ; pwd -P )
|
||
|
WORK_DIR=$DIR/../target/scala-2.12
|
||
|
mkdir -p $WORK_DIR
|
||
|
|
||
|
echo "Copy all docker to the target directory so we can start up properly and the docker context is small..."
|
||
|
cp -af $DIR/../docker $WORK_DIR/
|
||
|
|
||
|
echo "Copy the vinyldns.jar to the api docker folder so it is in context..."
|
||
|
if [[ ! -f $DIR/../modules/api/target/scala-2.12/vinyldns.jar ]]; then
|
||
|
echo "vinyldns jar not found, building..."
|
||
|
cd $DIR/../
|
||
|
sbt api/clean api/assembly
|
||
|
cd $DIR
|
||
|
fi
|
||
|
cp -f $DIR/../modules/api/target/scala-2.12/vinyldns.jar $WORK_DIR/docker/api
|
||
|
|
||
|
echo "Starting api server and all dependencies in the background..."
|
||
|
docker-compose -f $WORK_DIR/docker/docker-compose-func-test.yml --project-directory $WORK_DIR/docker up --build -d api
|
||
|
|
||
|
VINYL_URL="http://localhost:9000"
|
||
|
echo "Waiting for API to be ready at ${VINYL_URL} ..."
|
||
|
DATA=""
|
||
|
RETRY=40
|
||
|
while [ $RETRY -gt 0 ]
|
||
|
do
|
||
|
DATA=$(wget -O - -q -t 1 "${VINYL_URL}/ping")
|
||
|
if [ $? -eq 0 ]
|
||
|
then
|
||
|
echo "Succeeded in connecting to VINYL!"
|
||
|
break
|
||
|
else
|
||
|
echo "Retrying Again" >&2
|
||
|
|
||
|
let RETRY-=1
|
||
|
sleep 1
|
||
|
|
||
|
if [ $RETRY -eq 0 ]
|
||
|
then
|
||
|
echo "Exceeded retries waiting for VINYL to be ready, failing"
|
||
|
exit 1
|
||
|
fi
|
||
|
fi
|
||
|
done
|