#!/bin/sh # Variables assigned here are exported for Docker Compose and child containers. # The literal backticks belong to Traefik's rule syntax. # shellcheck disable=SC2034,SC2016 scale_load_environment() { SCALE_ROOT=$(CDPATH='' cd -- "$(dirname -- "$0")/.." && pwd) SCALE_ENV_FILE=${WNH_SCALE_ENV_FILE:-"$SCALE_ROOT/output/runtime/scale.env"} WNH_LOAD_ENV_FILE=$SCALE_ENV_FILE "$SCALE_ROOT/scripts/ensure-local-load-env.sh" set -a # shellcheck source=/dev/null . "$SCALE_ENV_FILE" LOAD_PROJECT=who_need_help_scale COMPOSE_PROJECT_NAME=$LOAD_PROJECT LOAD_HOST=scale.localhost HTTP_BIND_ADDRESS=127.0.0.1 HTTP_PORT=${WNH_SCALE_HTTP_PORT:-4120} SCALE_HTTPS_BIND_ADDRESS=127.0.0.1 SCALE_HTTPS_PORT=${WNH_SCALE_HTTPS_PORT:-4121} MAILPIT_BIND_ADDRESS=127.0.0.1 MAILPIT_PORT=${WNH_SCALE_MAILPIT_PORT:-8129} PHX_HOST=$LOAD_HOST PHX_SCHEME=https PHX_URL_PORT=$SCALE_HTTPS_PORT POSTGRES_DB=who_need_help_scale POSTGRES_USER=wnh_scale DATABASE_URL="ecto://$POSTGRES_USER:$POSTGRES_PASSWORD@db/$POSTGRES_DB" APP_IMAGE=who-need-help:scale SOCKET_PROXY_IMAGE=who-need-help:socket-proxy-scale POSTGIS_IMAGE=who-need-help:postgis-scale TRAEFIK_PROJECT_CONSTRAINT=$LOAD_PROJECT TRAEFIK_APP_NAME=who-need-help-scale TRAEFIK_DOCKER_NETWORK="${LOAD_PROJECT}_ingress" TRAEFIK_ROUTER_RULE='Host(`scale.localhost`)' WEB_REPLICAS=1 WORKER_REPLICAS=1 LOAD_WEB_REPLICAS=1 LOAD_WORKER_REPLICAS=1 CPU_REPLAY_CPUSET=${WNH_SCALE_CPUSET:-0} CPU_REPLAY_WEB_CPUS=1 CPU_REPLAY_WORKER_CPUS=1 CPU_REPLAY_WEB_SCHEDULERS=1 CPU_REPLAY_WORKER_SCHEDULERS=1 SCALE_VIEWER_PASSWORD=${SCALE_VIEWER_PASSWORD:-$LOAD_FIXTURE_PASSWORD} WNH_SCALE_EXPECTED_DATABASE=$POSTGRES_DB WNH_SCALE_FIXTURE_CONFIRM=persistent-local-scale set +a } scale_compose() { docker compose \ --env-file "$SCALE_ENV_FILE" \ -p "$LOAD_PROJECT" \ -f "$SCALE_ROOT/compose.yaml" \ -f "$SCALE_ROOT/compose.load.yaml" \ -f "$SCALE_ROOT/compose.scale.yaml" \ -f "$SCALE_ROOT/compose.cpu-replay.yaml" \ "$@" }