From 611bae2ff788151d229d773666e84991d5aa0e52 Mon Sep 17 00:00:00 2001 From: Theo Ilie Date: Thu, 2 Nov 2023 14:31:26 -0700 Subject: [PATCH 1/2] [PROTO-1393] Fix mediorum using dev build without git SHA --- .circleci/src/jobs/push-docker-image.yml | 1 - dev-tools/audius-compose | 4 ++-- dev-tools/compose/docker-compose.storage.dev.yml | 15 +++++++++++++++ ...ragev2.yml => docker-compose.storage.prod.yml} | 12 ++++++++---- dev-tools/compose/docker-compose.yml | 6 +++--- dev-tools/startup/{storagev2.sh => storage.sh} | 2 +- protocol-dashboard/src/hooks/useNodeHealth.ts | 2 +- 7 files changed, 30 insertions(+), 12 deletions(-) create mode 100644 dev-tools/compose/docker-compose.storage.dev.yml rename dev-tools/compose/{docker-compose.storagev2.yml => docker-compose.storage.prod.yml} (74%) rename dev-tools/startup/{storagev2.sh => storage.sh} (77%) diff --git a/.circleci/src/jobs/push-docker-image.yml b/.circleci/src/jobs/push-docker-image.yml index e3f497ed227..7e4d0401990 100644 --- a/.circleci/src/jobs/push-docker-image.yml +++ b/.circleci/src/jobs/push-docker-image.yml @@ -15,7 +15,6 @@ steps: - run: name: Docker login command: echo "$DOCKERHUB_PASS" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin - - run: . ~/.profile; audius-compose build --prod "<< parameters.service >>" - run: . ~/.profile; audius-compose push --prod "<< parameters.service >>" - run: when: always diff --git a/dev-tools/audius-compose b/dev-tools/audius-compose index 1c387726e85..8cc82f70cbd 100755 --- a/dev-tools/audius-compose +++ b/dev-tools/audius-compose @@ -225,7 +225,7 @@ def build( "--profile=identity", "--profile=discovery", "--profile=comms", - "--profile=storagev2", + "--profile=storage", "--profile=notifications", "--profile=elasticsearch", "--profile=mediorum", @@ -404,7 +404,7 @@ def up( *(["--profile=notifications"] if notifs else []), *(["--profile=pedalboard"] if pedalboard else []), *(["--profile=comms"] if comms else []), - *(["--profile=storagev2"]), + *(["--profile=storage"]), *(["--profile=libs"]), *(["--profile=solana"]), "up", diff --git a/dev-tools/compose/docker-compose.storage.dev.yml b/dev-tools/compose/docker-compose.storage.dev.yml new file mode 100644 index 00000000000..0ea5a1dd3f2 --- /dev/null +++ b/dev-tools/compose/docker-compose.storage.dev.yml @@ -0,0 +1,15 @@ +version: '3.9' + +# Defines "dev" content node. This is ran locally by audius-compose and uses `air` for hot reloading. +# Extends from docker-compose.storage.prod.yml. + +services: + storage: + extends: + file: docker-compose.storage.prod.yml + service: storage + build: + context: ${PROJECT_ROOT}/mediorum + dockerfile: Dockerfile.dev + args: + git_sha: '${GIT_COMMIT}' diff --git a/dev-tools/compose/docker-compose.storagev2.yml b/dev-tools/compose/docker-compose.storage.prod.yml similarity index 74% rename from dev-tools/compose/docker-compose.storagev2.yml rename to dev-tools/compose/docker-compose.storage.prod.yml index cdd6e374963..35a3da243cf 100644 --- a/dev-tools/compose/docker-compose.storagev2.yml +++ b/dev-tools/compose/docker-compose.storage.prod.yml @@ -1,15 +1,19 @@ version: '3.9' +# Defines "prod" content node. Doesn't use turbo yet, but builds with all dependencies baked in. +# This is used via audius-compose to build+push the prod image. +# A different docker-compose.yml definition in audius-docker-compose is used to run the prod image with a different entrypoint. + services: - storagev2: + storage: build: context: ${PROJECT_ROOT}/mediorum - dockerfile: Dockerfile.dev + dockerfile: Dockerfile args: git_sha: '${GIT_COMMIT}' restart: unless-stopped entrypoint: /bin/sh - command: /tmp/dev-tools/startup/storagev2.sh 3 # Change 3 to number of nodes if you want more or fewer (up to 5) + command: /tmp/dev-tools/startup/storage.sh 3 # Entrypoint for local dev (audius-docker-compose sets a different entrypoint for stage+prod) environment: - dirTemplate=/data/mediorum_dev_%d - dbUrlTemplate=postgresql://postgres:postgres@db:5432/creator_node_%d @@ -32,7 +36,7 @@ services: - ${PROJECT_ROOT}/dev-tools:/tmp/dev-tools - ${PROJECT_ROOT}/packages/libs/src/eth-contracts:/tmp/eth-contracts # Used only in register script profiles: - - storagev2 + - storage depends_on: db: condition: service_healthy diff --git a/dev-tools/compose/docker-compose.yml b/dev-tools/compose/docker-compose.yml index 2f8ada99f69..2de0b2f5122 100644 --- a/dev-tools/compose/docker-compose.yml +++ b/dev-tools/compose/docker-compose.yml @@ -146,12 +146,12 @@ services: service: sla-auditor <<: *common - # Storage v2 + # Storage (content node) mediorum: extends: - file: docker-compose.storagev2.yml - service: storagev2 + file: docker-compose.storage.${DOCKERCOMPOSE_ENV_TYPE:-dev}.yml + service: storage container_name: audius-protocol-mediorum <<: *common diff --git a/dev-tools/startup/storagev2.sh b/dev-tools/startup/storage.sh similarity index 77% rename from dev-tools/startup/storagev2.sh rename to dev-tools/startup/storage.sh index 065610d690a..ea69366f76c 100755 --- a/dev-tools/startup/storagev2.sh +++ b/dev-tools/startup/storage.sh @@ -1,6 +1,6 @@ #!/usr/bin/env sh -# Called from within the storagev2 docker container to register the nodes +# Called from within the storage docker container to register the nodes (only on local dev) if [ "$#" -ne 1 ]; then echo "Usage: $0 " diff --git a/protocol-dashboard/src/hooks/useNodeHealth.ts b/protocol-dashboard/src/hooks/useNodeHealth.ts index 551948fb7c4..e99048b7ae5 100644 --- a/protocol-dashboard/src/hooks/useNodeHealth.ts +++ b/protocol-dashboard/src/hooks/useNodeHealth.ts @@ -43,7 +43,7 @@ const useNodeHealth = (endpoint: string, serviceType: ServiceType) => { // ----------Discovery health---------- let chainError = undefined - if (!data?.chain_health) chainError = 'Missing health info' + if (!health?.chain_health) chainError = 'Missing health info' if (!data?.portHealth) chainError = "Can't reach port 30300" res = { From 1278fed2823ab3fadee9749a54607f0f16f942cd Mon Sep 17 00:00:00 2001 From: Theo Ilie Date: Thu, 2 Nov 2023 17:37:52 -0700 Subject: [PATCH 2/2] Fix audius-compose up --prod for CI --- dev-tools/audius-compose | 3 +++ dev-tools/compose/docker-compose.storage.dev.yml | 4 ++-- dev-tools/compose/docker-compose.storage.prod.yml | 2 -- dev-tools/compose/docker-compose.yml | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/dev-tools/audius-compose b/dev-tools/audius-compose index 8cc82f70cbd..98ae2f98c66 100755 --- a/dev-tools/audius-compose +++ b/dev-tools/audius-compose @@ -385,6 +385,9 @@ def up( AAO_DIR = pathlib.Path(os.getenv("AAO_DIR", protocol_dir / "../anti-abuse-oracle")) + # Mediorum's Dockerfile.prod doesn't support multiple mediorum instances, so always use dev + os.environ['MEDIORUM_ENV_TYPE'] = 'dev' + ctx.invoke(pull) sys.exit( subprocess.run( diff --git a/dev-tools/compose/docker-compose.storage.dev.yml b/dev-tools/compose/docker-compose.storage.dev.yml index 0ea5a1dd3f2..ccfeb56990b 100644 --- a/dev-tools/compose/docker-compose.storage.dev.yml +++ b/dev-tools/compose/docker-compose.storage.dev.yml @@ -11,5 +11,5 @@ services: build: context: ${PROJECT_ROOT}/mediorum dockerfile: Dockerfile.dev - args: - git_sha: '${GIT_COMMIT}' + entrypoint: /bin/sh + command: /tmp/dev-tools/startup/storage.sh 3 # Entrypoint for local dev diff --git a/dev-tools/compose/docker-compose.storage.prod.yml b/dev-tools/compose/docker-compose.storage.prod.yml index 35a3da243cf..b16345663e3 100644 --- a/dev-tools/compose/docker-compose.storage.prod.yml +++ b/dev-tools/compose/docker-compose.storage.prod.yml @@ -12,8 +12,6 @@ services: args: git_sha: '${GIT_COMMIT}' restart: unless-stopped - entrypoint: /bin/sh - command: /tmp/dev-tools/startup/storage.sh 3 # Entrypoint for local dev (audius-docker-compose sets a different entrypoint for stage+prod) environment: - dirTemplate=/data/mediorum_dev_%d - dbUrlTemplate=postgresql://postgres:postgres@db:5432/creator_node_%d diff --git a/dev-tools/compose/docker-compose.yml b/dev-tools/compose/docker-compose.yml index 2de0b2f5122..385cea91527 100644 --- a/dev-tools/compose/docker-compose.yml +++ b/dev-tools/compose/docker-compose.yml @@ -150,7 +150,7 @@ services: mediorum: extends: - file: docker-compose.storage.${DOCKERCOMPOSE_ENV_TYPE:-dev}.yml + file: docker-compose.storage.${MEDIORUM_ENV_TYPE:-${DOCKERCOMPOSE_ENV_TYPE:-dev}}.yml service: storage container_name: audius-protocol-mediorum <<: *common