#!/usr/bin/env bash set -eo pipefail [ "$(uname)" == "Darwin" ] && readlink_cmd="greadlink" || readlink_cmd="readlink" SCRIPT_DIR="$(dirname $($readlink_cmd -f $0))" TAO_PATH="${TAO_PATH:-$SCRIPT_DIR/../..}" BACKEND_REPO="${BACKEND_REPO:-test-tutorial-framework}" FRONTEND_REPO="${FRONTEND_REPO:-frontend-tutorial-framework}" BACKEND_PATH="${TAO_PATH}/${BACKEND_REPO}" FRONTEND_PATH="${TAO_PATH}/${FRONTEND_REPO}" IMAGE_NAME="${IMAGE_NAME:-baseimage-tutorial-framework}" BACKEND_PORT="${BACKEND_PORT:-8888}" AVATAO_SECRET="${AVATAO_SECRET:-secret}" BUILD_CONTEXT="${BUILD_CONTEXT:-solvable}" function run_frontend() { cd $FRONTEND_PATH yarn start } function run_backend() { cd $BACKEND_PATH docker build -t $IMAGE_NAME -f ${BUILD_CONTEXT}/Dockerfile --build-arg BUILD_CONTEXT=$BUILD_CONTEXT --build-arg NOFRONTEND=1 . docker run --rm -p $BACKEND_PORT:$BACKEND_PORT -e AVATAO_SECRET=$AVATAO_SECRET $IMAGE_NAME } trap 'exit' INT TERM trap 'kill 0' EXIT run_frontend & run_backend wait