diff --git a/app/data/compose/docker-compose-watcher-mobymask-v2.yml b/app/data/compose/docker-compose-watcher-mobymask-v2.yml index 601d13b6..c85953c5 100644 --- a/app/data/compose/docker-compose-watcher-mobymask-v2.yml +++ b/app/data/compose/docker-compose-watcher-mobymask-v2.yml @@ -54,6 +54,24 @@ services: extra_hosts: - "host.docker.internal:host-gateway" + watcher-ts-peer: + # TODO: Use watcher-ts local container or publish watcher-ts image + image: ghcr.io/cerc-io/watcher-ts:v0.2.37 + restart: on-failure + environment: + CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG} + working_dir: /app/packages/peer + command: ["sh", "start-watcher-ts-shell.sh"] + volumes: + - ../config/watcher-mobymask-v2/start-watcher-ts-shell.sh:/app/packages/peer/start-watcher-ts-shell.sh + - peers_ids:/app/packages/peer + healthcheck: + test: ["CMD", "ls", /app/packages/peer/peer-id.json] + interval: 20s + timeout: 5s + retries: 15 + start_period: 5s + # Starts the mobymask-v2-watcher server mobymask-watcher-server: image: cerc/watcher-mobymask-v2:local @@ -61,6 +79,8 @@ services: depends_on: mobymask-watcher-db: condition: service_healthy + watcher-ts-peer: + condition: service_healthy mobymask: condition: service_completed_successfully env_file: @@ -76,9 +96,9 @@ services: CERC_DEPLOYED_CONTRACT: ${CERC_DEPLOYED_CONTRACT} command: ["sh", "start-server.sh"] volumes: - - ../config/watcher-mobymask-v2/watcher-config-template.toml:/app/packages/mobymask-v2-watcher/environments/watcher-config-template.toml - - ../config/watcher-mobymask-v2/start-server.sh:/app/packages/mobymask-v2-watcher/start-server.sh - - peers_ids:/app/packages/mobymask-v2-watcher/peers + - ../config/watcher-mobymask-v2/watcher-config-template.toml:/app/environments/watcher-config-template.toml + - ../config/watcher-mobymask-v2/start-server.sh:/app/start-server.sh + - peers_ids:/app/peers - mobymask_deployment:/server - fixturenet_geth_accounts:/geth-accounts:ro # Expose GQL, metrics and relay node ports diff --git a/app/data/config/watcher-mobymask-v2/start-server.sh b/app/data/config/watcher-mobymask-v2/start-server.sh index b5a3518e..02184842 100755 --- a/app/data/config/watcher-mobymask-v2/start-server.sh +++ b/app/data/config/watcher-mobymask-v2/start-server.sh @@ -14,26 +14,7 @@ CERC_DEPLOYED_CONTRACT="${CERC_DEPLOYED_CONTRACT:-${DEFAULT_CERC_DEPLOYED_CONTRA echo "Using L2 RPC endpoint ${CERC_L2_GETH_RPC}" -# Check for peer ids in ./peers folder, create if not present -if [ -f ./peers/relay-id.json ]; then - echo "Using peer id for relay node from the mounted volume" -else - echo "Creating a new peer id for relay node" - cd ../peer - yarn create-peer -f ../mobymask-v2-watcher/peers/relay-id.json - cd ../mobymask-v2-watcher -fi - -if [ -f ./peers/peer-id.json ]; then - echo "Using peer id for peer node from the mounted volume" -else - echo "Creating a new peer id for peer node" - cd ../peer - yarn create-peer -f ../mobymask-v2-watcher/peers/peer-id.json - cd ../mobymask-v2-watcher -fi - -CERC_RELAY_MULTIADDR="/dns4/mobymask-watcher-server/tcp/9090/ws/p2p/$(jq -r '.id' ./peers/relay-id.json)" +CERC_RELAY_MULTIADDR="/dns4/mobymask-watcher-server/tcp/9090/ws/p2p/$(jq -r '.id' /app/peers/relay-id.json)" # Use contract address from environment variable or set from config.json in mounted volume if [ -n "$CERC_DEPLOYED_CONTRACT" ]; then @@ -65,8 +46,5 @@ WATCHER_CONFIG=$(echo "$WATCHER_CONFIG_TEMPLATE" | \ # Write the modified content to a new file echo "$WATCHER_CONFIG" > environments/local.toml -# Write the relay node's multiaddr to /app/packages/peer/.env for running tests -echo "RELAY=\"$CERC_RELAY_MULTIADDR\"" > /app/packages/peer/.env - echo 'yarn server' yarn server diff --git a/app/data/config/watcher-mobymask-v2/start-watcher-ts-shell.sh b/app/data/config/watcher-mobymask-v2/start-watcher-ts-shell.sh new file mode 100644 index 00000000..7d823ef7 --- /dev/null +++ b/app/data/config/watcher-mobymask-v2/start-watcher-ts-shell.sh @@ -0,0 +1,32 @@ +#!/bin/sh +set -e +if [ -n "$CERC_SCRIPT_DEBUG" ]; then + set -x +fi + +# TODO: Build in Dockerfile +apk --update --no-cache add jq +yarn build + +# Check for peer ids in ./peers folder, create if not present +if [ -f ./relay-id.json ]; then + echo "Using peer id for relay node from the mounted volume" +else + echo "Creating a new peer id for relay node" + yarn create-peer -f relay-id.json +fi + +if [ -f ./peer-id.json ]; then + echo "Using peer id for peer node from the mounted volume" +else + echo "Creating a new peer id for peer node" + yarn create-peer -f peer-id.json +fi + +CERC_RELAY_MULTIADDR="/dns4/mobymask-watcher-server/tcp/9090/ws/p2p/$(jq -r '.id' ./relay-id.json)" + +# Write the relay node's multiaddr to /app/packages/peer/.env for running tests +echo "RELAY=\"$CERC_RELAY_MULTIADDR\"" > ./.env + +# TODO: Discuss leave shell running +tail -f .env diff --git a/app/data/container-build/cerc-watcher-mobymask-v2/Dockerfile b/app/data/container-build/cerc-watcher-mobymask-v2/Dockerfile index 18aff5cd..9d1a70b7 100644 --- a/app/data/container-build/cerc-watcher-mobymask-v2/Dockerfile +++ b/app/data/container-build/cerc-watcher-mobymask-v2/Dockerfile @@ -17,4 +17,4 @@ COPY . . RUN echo "Building watcher-ts" && \ yarn && yarn build -WORKDIR /app/packages/mobymask-v2-watcher +WORKDIR /app diff --git a/app/data/container-build/cerc-watcher-mobymask-v2/build.sh b/app/data/container-build/cerc-watcher-mobymask-v2/build.sh index f8b59224..b26ad999 100755 --- a/app/data/container-build/cerc-watcher-mobymask-v2/build.sh +++ b/app/data/container-build/cerc-watcher-mobymask-v2/build.sh @@ -6,4 +6,4 @@ source ${CERC_CONTAINER_BASE_DIR}/build-base.sh # See: https://stackoverflow.com/a/246128/1701505 SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -docker build -t cerc/watcher-mobymask-v2:local -f ${SCRIPT_DIR}/Dockerfile ${build_command_args} ${CERC_REPO_BASE_DIR}/watcher-ts +docker build -t cerc/watcher-mobymask-v2:local -f ${SCRIPT_DIR}/Dockerfile ${build_command_args} ${CERC_REPO_BASE_DIR}/mobymask-v2-watcher-ts