diff --git a/docker-compose.yml b/docker-compose.yml index 6d13657923fa27f5defd728c67910b121ecebcbc..b8b0105b4f0e96f2c2fc12be85d78edb2e66cd46 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -70,7 +70,7 @@ services: AGENT_NAME: ssi-abstraction-agent AGENT_WALLET_ID: ssi-wallet-id AGENT_WALLET_KEY: ssi-wallet-key - AGENT_HOST: http://host.docker.internal + AGENT_HOST: ${SSI_AGENT_HOST:-http://host.docker.internal} AGENT_INBOUND_PORT: ${SSI_AGENT_PORT:-4005} AGENT_LEDGER_ID: BCOVRIN_TEST AGENT_INDY_DID_SEED: 6b8b882e2618fa5d45ee7229ca000000 @@ -91,6 +91,9 @@ services: - nats - init-s3 - postgres + networks: + - default + - ocm-network schema-manager: build: @@ -195,3 +198,8 @@ services: volumes: postgresql-data: + +networks: + ocm-network: + external: true + driver: bridge diff --git a/scripts/start_instance.sh b/scripts/start_instance.sh index fba397f366bf761eaca5abf0414fbbd775b66da0..bafa67dd94fdc7483d91c0ce8f23dfac5398a33c 100755 --- a/scripts/start_instance.sh +++ b/scripts/start_instance.sh @@ -27,6 +27,13 @@ while [[ "$#" -gt 0 ]]; do shift done +# Step 0: Create a Docker network if it doesn't exist yet +network_name="ocm-network" +if ! docker network inspect $network_name >/dev/null 2>&1; then + echo "Creating Docker network: $network_name" + docker network create $network_name >/dev/null +fi + # Step 1: Get all running Docker Compose instances and extract the project numbers running_instances=$(docker compose ls --format json | jq -r '.[].Name') max_number=0 @@ -45,6 +52,9 @@ new_number=$((max_number + 1)) # Calculate new port numbers based on new_number increment=$((new_number * 100)) +# Set the project name +project_name="ocm-$new_number" + # Export the new port numbers export SCHEMA_MANAGER_PORT=$((base_SCHEMA_MANAGER_PORT + increment)) export CONNECTION_MANAGER_PORT=$((base_CONNECTION_MANAGER_PORT + increment)) @@ -53,6 +63,7 @@ export PROOF_MANAGER_PORT=$((base_PROOF_MANAGER_PORT + increment)) export DID_MANAGER_PORT=$((base_DID_MANAGER_PORT + increment)) export TENANT_MANAGER_PORT=$((base_TENANT_MANAGER_PORT + increment)) export SSI_PORT=$((base_SSI_PORT + increment)) +export SSI_AGENT_HOST="http://${project_name}-ssi-abstraction-1" export SSI_AGENT_PORT=$((base_SSI_AGENT_PORT + increment)) export NATS_PORT=$((base_NATS_PORT + increment)) export NATS_MONITORING_PORT=$((base_NATS_MONITORING_PORT + increment)) @@ -61,11 +72,11 @@ export S3_CONSOLE_PORT=$((base_S3_CONSOLE_PORT + increment)) export POSTGRES_PORT=$((base_POSTGRES_PORT + increment)) # Proceed with starting the instance -docker compose -p "ocm-$new_number" up -d $docker_compose_options +docker compose -p $project_name up -d $docker_compose_options # Output the ports in a tabular view after the instance has started echo -echo "Port Assignments for ocm-$new_number:" +echo "Port Assignments for $project_name:" echo printf "%-25s %-10s\n" "VARIABLE" "PORT" printf '%-25s %-10s\n' '-------------------------' '----------' diff --git a/scripts/stop_instance.sh b/scripts/stop_instance.sh index 70b5268b1b43a607da43af5c05030b5ffec248f3..83e4474273f003710b511aa94c2c18f35cba6322 100755 --- a/scripts/stop_instance.sh +++ b/scripts/stop_instance.sh @@ -1,5 +1,7 @@ #!/usr/bin/env bash +network_name="ocm-network" + # Function to stop a Docker Compose project stop_docker_compose_project() { local project_name=$1 @@ -80,3 +82,19 @@ else ;; esac fi + +# Get all running Docker Compose instances +running_instances=$(docker compose ls --format json | jq -r '.[].Name') +running_projects=() + +for name in $running_instances; do + if [[ $name =~ ocm-([0-9]+) ]]; then + running_projects+=("$name") + fi +done + +if [ ${#running_projects[@]} -eq 0 ]; then + # Remove the network if there are no running instances + echo "Removing Docker network: $network_name" + docker network rm $network_name &>/dev/null +fi