#!/bin/bash set -e PORT=9001 IMAGE=rancher/docs TAG=dev THEME= BUILD= # cd to app root CWD=$(dirname $0) if [[ `basename $(pwd)` = 'scripts' ]]; then cd ../ else cd `dirname $CWD` fi print_help() { cat 1>&2 <&2; } absolute() { # $1 : relative filename echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")" } while getopts ":bp:t:" opt;do case $opt in b) BUILD="true" ;; p) PORT="${OPTARG}" ;; t) THEME="${OPTARG}" ;; \?) echoerr "Invalid arguemnts" print_help exit 1 ;; :) echoerr "Option -${OPTARG} requires an argument." print_help exit 1 ;; esac done THEMEVOLUME="" if [[ "$THEME" ]]; then echo "Using theme from ${THEME}" ABSOLUTE=$(absolute $THEME) THEMEVOLUME="-v ${ABSOLUTE}:/run/node_modules/rancher-website-theme" fi if [ -z "$BUILD" ]; then docker pull ${IMAGE}:${TAG} else echo "Building ${IMAGE}:${TAG}" TAG=local docker build -f Dockerfile.dev -t ${IMAGE}:${TAG} . fi echo "Starting server on http://localhost:${PORT}" docker run --rm -p ${PORT}:${PORT} -it -v $(pwd):/site ${THEMEVOLUME} ${IMAGE}:${TAG} dev --port=${PORT}