blob: e323bfb6d94ad7238e9c2a840ba1e39229a95e8c [file] [log] [blame]
#!/bin/bash
# find where we are
APP_PATH=$(git rev-parse --show-toplevel)
cd $APP_PATH
# set the environment file
ENV_FILE=/data/nolabs/config/.env
# remove leftovers
rm -rf $APP_PATH/.venv
# go into venv
echo "Info: Creating python virtualenv"
pyvenv $APP_PATH/.venv > /dev/null
source $APP_PATH/.venv/bin/activate
# source our own environment settings
set -a
source $ENV_FILE
set +a
# install requirements
echo "Info: Installing application requirements"
pip install -r $APP_PATH/requirements.txt > /dev/null
# make folder to store application logs
mkdir -p $LOGS_DIR
# build flask application container image
echo "Info: Building application container image"
echo "-------------------------------------------------------"
docker build -t $FLASK_APP_CONTAINER_NAME .
echo "-------------------------------------------------------"
echo "Info: Built application container image"
# wait for mysql container to be up
while true; do
flask db upgrade #> /dev/null 2>&1
if [[ "$?" == "0" ]]; then
break
fi
echo "Warn: Waiting for MySQL to be ready before starting the application. Retrying in 5 secs..."
sleep 5
done
# start flask application container
echo "Info: Starting application container"
echo "-------------------------------------------------------"
docker build -t $FLASK_APP_CONTAINER_NAME .
docker run --rm --name $FLASK_APP_CONTAINER_NAME -d --net host \
-v $PWD:/data/nolabs/app -v $LOGS_DIR:$LOGS_DIR --env-file $ENV_FILE \
$FLASK_APP_CONTAINER_NAME
echo "-------------------------------------------------------"
echo "Info: Application started!"