mirror of https://github.com/rancher/dashboard.git
75 lines
1.9 KiB
Bash
Executable File
75 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
DIR=$(cd $(dirname $0)/..; pwd)
|
|
|
|
# See `script/build-e2e`
|
|
DASHBOARD_DIST=${DIR}/dist
|
|
EMBER_DIST=${DIR}/dist_ember
|
|
|
|
# Image version
|
|
RANCHER_IMG_VERSION=v2.11-2053ce644a31cd8053d1f58e2487154b0b8513b6-head
|
|
|
|
# Docker volume args when mounting the locally-built UI into the container
|
|
VOLUME_ARGS="-v ${DASHBOARD_DIST}:/usr/share/rancher/ui-dashboard/dashboard -v ${EMBER_DIST}:/usr/share/rancher/ui"
|
|
|
|
# check if script invoke contains any argument. If so, adjust RANCHER_IMG_VERSION
|
|
if [ $# -eq 1 ]; then
|
|
RANCHER_IMG_VERSION=$1
|
|
# When an image is specified, we use that image, including its front-end, so we don't want the volume args to mount the locally-built UI
|
|
VOLUME_ARGS=""
|
|
fi
|
|
|
|
echo "Using Rancher image version: ${RANCHER_IMG_VERSION}"
|
|
|
|
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 ${VOLUME_ARGS} \
|
|
-e CATTLE_UI_OFFLINE_PREFERRED=true \
|
|
-e CATTLE_BOOTSTRAP_PASSWORD=password \
|
|
-e CATTLE_PASSWORD_MIN_LENGTH=3 \
|
|
--name cypress \
|
|
--privileged \
|
|
rancher/rancher:${RANCHER_IMG_VERSION}
|
|
|
|
docker ps
|
|
|
|
echo "Waiting for dashboard UI to be reachable (initial 20s wait) ..."
|
|
|
|
sleep 20
|
|
|
|
echo "Waiting for dashboard UI to be reachable ..."
|
|
|
|
okay=0
|
|
|
|
while [ $okay -lt 20 ]; do
|
|
STATUS=$(curl --silent --head -k https://127.0.0.1/dashboard/ | awk '/^HTTP/{print $2}')
|
|
|
|
echo "Status: $STATUS (Try: $okay)"
|
|
|
|
okay=$((okay+1))
|
|
|
|
if [ "$STATUS" == "200" ]; then
|
|
okay=100
|
|
else
|
|
sleep 5
|
|
fi
|
|
done
|
|
|
|
if [ "$STATUS" != "200" ]; then
|
|
echo "Dashboard did not become available in a reasonable time"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Dashboard UI is ready"
|
|
|
|
echo "Waiting for webhook to be running..."
|
|
okay=0
|
|
while [ $okay -lt 20 ] ; do
|
|
if docker exec cypress kubectl -n cattle-system get po -l app=rancher-webhook | grep -q '1/1.*Running' ; then
|
|
break
|
|
else
|
|
echo "Webhook not ready, checking again in 10s..."
|
|
okay=$((okay+1))
|
|
sleep 10
|
|
fi
|
|
done
|
|
echo "Rancher is ready"
|