simplify env setup and handle MINIO_ missing
This commit is contained in:
parent
afe293de56
commit
18ddcd092e
|
@ -1,45 +1,57 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
declare -a ENV_VARS=("COUCHDB_USER" "COUCHDB_PASSWORD" "DATA_DIR" "MINIO_ACCESS_KEY" "MINIO_SECRET_KEY" "INTERNAL_API_KEY" "JWT_SECRET" "REDIS_PASSWORD")
|
|
||||||
declare -a DOCKER_VARS=("APP_PORT" "APPS_URL" "ARCHITECTURE" "BUDIBASE_ENVIRONMENT" "CLUSTER_PORT" "DEPLOYMENT_ENVIRONMENT" "MINIO_URL" "NODE_ENV" "POSTHOG_TOKEN" "REDIS_URL" "SELF_HOSTED" "WORKER_PORT" "WORKER_URL" "TENANT_FEATURE_FLAGS" "ACCOUNT_PORTAL_URL")
|
|
||||||
# Check the env vars set in Dockerfile have come through, AAS seems to drop them
|
|
||||||
[[ -z "${APP_PORT}" ]] && export APP_PORT=4001
|
|
||||||
[[ -z "${ARCHITECTURE}" ]] && export ARCHITECTURE=amd
|
|
||||||
[[ -z "${BUDIBASE_ENVIRONMENT}" ]] && export BUDIBASE_ENVIRONMENT=PRODUCTION
|
|
||||||
[[ -z "${CLUSTER_PORT}" ]] && export CLUSTER_PORT=80
|
|
||||||
[[ -z "${DEPLOYMENT_ENVIRONMENT}" ]] && export DEPLOYMENT_ENVIRONMENT=docker
|
|
||||||
[[ -z "${MINIO_URL}" ]] && [[ -z "${USE_S3}" ]] && export MINIO_URL=http://127.0.0.1:9000
|
|
||||||
[[ -z "${NODE_ENV}" ]] && export NODE_ENV=production
|
|
||||||
[[ -z "${POSTHOG_TOKEN}" ]] && export POSTHOG_TOKEN=phc_bIjZL7oh2GEUd2vqvTBH8WvrX0fWTFQMs6H5KQxiUxU
|
|
||||||
[[ -z "${ACCOUNT_PORTAL_URL}" ]] && export ACCOUNT_PORTAL_URL=https://account.budibase.app
|
|
||||||
[[ -z "${REDIS_URL}" ]] && export REDIS_URL=127.0.0.1:6379
|
|
||||||
[[ -z "${SELF_HOSTED}" ]] && export SELF_HOSTED=1
|
|
||||||
[[ -z "${WORKER_PORT}" ]] && export WORKER_PORT=4002
|
|
||||||
[[ -z "${WORKER_URL}" ]] && export WORKER_URL=http://127.0.0.1:4002
|
|
||||||
[[ -z "${APPS_URL}" ]] && export APPS_URL=http://127.0.0.1:4001
|
|
||||||
[[ -z "${SERVER_TOP_LEVEL_PATH}" ]] && export SERVER_TOP_LEVEL_PATH=/app
|
|
||||||
# export CUSTOM_DOMAIN=budi001.custom.com
|
|
||||||
|
|
||||||
export DATA_DIR=${DATA_DIR:-/data}
|
echo "Starting runner.sh"
|
||||||
mkdir -p ${DATA_DIR}
|
|
||||||
# Mount NFS or GCP Filestore if env vars exist for it
|
# set defaults for Docker-related variables
|
||||||
if [[ ! -z ${FILESHARE_IP} && ! -z ${FILESHARE_NAME} ]]; then
|
export APP_PORT="${APP_PORT:-4001}"
|
||||||
|
export ARCHITECTURE="${ARCHITECTURE:-amd}"
|
||||||
|
export BUDIBASE_ENVIRONMENT="${BUDIBASE_ENVIRONMENT:-PRODUCTION}"
|
||||||
|
export CLUSTER_PORT="${CLUSTER_PORT:-80}"
|
||||||
|
export DEPLOYMENT_ENVIRONMENT="${DEPLOYMENT_ENVIRONMENT:-docker}"
|
||||||
|
|
||||||
|
# only set MINIO_URL if neither MINIO_URL nor USE_S3 is set
|
||||||
|
if [[ -z "${MINIO_URL}" && -z "${USE_S3}" ]]; then
|
||||||
|
export MINIO_URL="http://127.0.0.1:9000"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export NODE_ENV="${NODE_ENV:-production}"
|
||||||
|
export POSTHOG_TOKEN="${POSTHOG_TOKEN:-phc_bIjZL7oh2GEUd2vqvTBH8WvrX0fWTFQMs6H5KQxiUxU}"
|
||||||
|
export ACCOUNT_PORTAL_URL="${ACCOUNT_PORTAL_URL:-https://account.budibase.app}"
|
||||||
|
export REDIS_URL="${REDIS_URL:-127.0.0.1:6379}"
|
||||||
|
export SELF_HOSTED="${SELF_HOSTED:-1}"
|
||||||
|
export WORKER_PORT="${WORKER_PORT:-4002}"
|
||||||
|
export WORKER_URL="${WORKER_URL:-http://127.0.0.1:4002}"
|
||||||
|
export APPS_URL="${APPS_URL:-http://127.0.0.1:4001}"
|
||||||
|
export SERVER_TOP_LEVEL_PATH="${SERVER_TOP_LEVEL_PATH:-/app}"
|
||||||
|
|
||||||
|
# set DATA_DIR and ensure the directory exists
|
||||||
|
export DATA_DIR="${DATA_DIR:-/data}"
|
||||||
|
mkdir -p "${DATA_DIR}"
|
||||||
|
|
||||||
|
# mount NFS or GCP Filestore if FILESHARE_IP and FILESHARE_NAME are set
|
||||||
|
if [[ -n "${FILESHARE_IP}" && -n "${FILESHARE_NAME}" ]]; then
|
||||||
echo "Mounting NFS share"
|
echo "Mounting NFS share"
|
||||||
apt update && apt install -y nfs-common nfs-kernel-server
|
apt update && apt install -y nfs-common nfs-kernel-server
|
||||||
echo "Mount file share ${FILESHARE_IP}:/${FILESHARE_NAME} to ${DATA_DIR}"
|
echo "Mount file share ${FILESHARE_IP}:/${FILESHARE_NAME} to ${DATA_DIR}"
|
||||||
mount -o nolock ${FILESHARE_IP}:/${FILESHARE_NAME} ${DATA_DIR}
|
mount -o nolock "${FILESHARE_IP}:/${FILESHARE_NAME}" "${DATA_DIR}"
|
||||||
echo "Mounting result: $?"
|
echo "Mounting result: $?"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "${DATA_DIR}/.env" ]; then
|
# source environment variables from a .env file if it exists in DATA_DIR
|
||||||
# Read in the .env file and export the variables
|
if [[ -f "${DATA_DIR}/.env" ]]; then
|
||||||
for LINE in $(cat ${DATA_DIR}/.env); do export $LINE; done
|
set -a # Automatically export all variables loaded from .env
|
||||||
|
source "${DATA_DIR}/.env"
|
||||||
|
set +a
|
||||||
fi
|
fi
|
||||||
# randomise any unset environment variables
|
|
||||||
for ENV_VAR in "${ENV_VARS[@]}"; do
|
# randomize any unset sensitive environment variables using uuidgen
|
||||||
if [[ -z "${!ENV_VAR}" ]]; then
|
env_vars=(COUCHDB_USER COUCHDB_PASSWORD MINIO_ACCESS_KEY MINIO_SECRET_KEY INTERNAL_API_KEY JWT_SECRET REDIS_PASSWORD)
|
||||||
eval "export $ENV_VAR=$(uuidgen | sed -e 's/-//g')"
|
for var in "${env_vars[@]}"; do
|
||||||
|
if [[ -z "${!var}" ]]; then
|
||||||
|
export "$var"="$(uuidgen | tr -d '-')"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ -z "${COUCH_DB_URL}" ]]; then
|
if [[ -z "${COUCH_DB_URL}" ]]; then
|
||||||
export COUCH_DB_URL=http://$COUCHDB_USER:$COUCHDB_PASSWORD@127.0.0.1:5984
|
export COUCH_DB_URL=http://$COUCHDB_USER:$COUCHDB_PASSWORD@127.0.0.1:5984
|
||||||
fi
|
fi
|
||||||
|
@ -88,10 +100,10 @@ fi
|
||||||
|
|
||||||
# only start minio if use s3 isn't passed
|
# only start minio if use s3 isn't passed
|
||||||
if [[ -z "${USE_S3}" ]]; then
|
if [[ -z "${USE_S3}" ]]; then
|
||||||
if [[ $TARGETBUILD == aas ]]; then
|
if [[ ${TARGETBUILD} == aas ]]; then
|
||||||
echo "Starting MinIO in Azure Gateway mode"
|
echo "Starting MinIO in Azure Gateway mode"
|
||||||
if [[ -z "${AZURE_STORAGE_ACCOUNT}" || -z "${AZURE_STORAGE_KEY}" ]]; then
|
if [[ -z "${AZURE_STORAGE_ACCOUNT}" || -z "${AZURE_STORAGE_KEY}" || -z "${MINIO_ACCESS_KEY}" || -z "${MINIO_SECRET_KEY}" ]]; then
|
||||||
echo "AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_KEY must be set when deploying in Azure App Service mode"
|
echo "The following environment variables must be set: AZURE_STORAGE_ACCOUNT, AZURE_STORAGE_KEY, MINIO_ACCESS_KEY, MINIO_SECRET_KEY"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
/minio/minio gateway azure --console-address ":9001" >/dev/stdout 2>&1 &
|
/minio/minio gateway azure --console-address ":9001" >/dev/stdout 2>&1 &
|
||||||
|
|
Loading…
Reference in New Issue