diff --git a/indexer/README.md b/indexer/README.md index 5e727bdd..8bc1d6d6 100644 --- a/indexer/README.md +++ b/indexer/README.md @@ -86,7 +86,7 @@ sudo docker run --env-file ./indexer/.env -p 3000:3000 kadena-indexer:latest ### 4.4. Running with Docker Compose -Docker Compose provides a way to run the entire indexer stack with a single command. While you could run each service separately (database, migrations, GraphQL server, and streaming service), Docker Compose orchestrates all these components together, handling their dependencies and startup order automatically. The services are defined in `docker-compose.development.yml`, which includes: +Docker Compose provides a way to run the entire indexer stack with a single command. While you could run each service separately (database, migrations, GraphQL server, and streaming service), Docker Compose orchestrates all these components together, handling their dependencies and startup order automatically. The services are defined in `docker-compose.yml`, which includes: - PostgreSQL database - Database migrations - GraphQL API server diff --git a/indexer/docker-compose.development.yml b/indexer/docker-compose.development.yml deleted file mode 100644 index 19f52ecc..00000000 --- a/indexer/docker-compose.development.yml +++ /dev/null @@ -1,58 +0,0 @@ -version: '3.8' - -services: - indexer-db: - image: postgres - container_name: kad-indexer-postgres - environment: - POSTGRES_USER: ${DB_USERNAME} - POSTGRES_PASSWORD: ${DB_PASSWORD} - POSTGRES_DB: ${DB_NAME} - ports: - - "5432:5432" - volumes: - - ${PWD}/indexer/postgres:/var/lib/postgresql/data - healthcheck: - test: ["CMD-SHELL", "pg_isready -U ${DB_USERNAME}"] - interval: 10s - timeout: 5s - retries: 5 - - db-migration: - build: - context: ../ - dockerfile: Dockerfile.development - container_name: db-migration - environment: - DB_HOST: indexer-db - command: ["yarn", "create:database"] - depends_on: - indexer-db: - condition: service_healthy - - graphql-app: - build: - context: ../ - dockerfile: Dockerfile.development - container_name: kad-indexer-graphql - environment: - DB_HOST: indexer-db - command: ["yarn", "dev:graphql"] - ports: - - "3001:3001" - depends_on: - db-migration: - condition: service_completed_successfully - - streaming-app: - build: - context: ../ - dockerfile: Dockerfile.development - container_name: kad-indexer-streaming - environment: - DB_HOST: indexer-db - KADENA_GRAPHQL_API_URL: http://graphql-app - command: ["yarn", "dev:streaming"] - depends_on: - graphql-app: - condition: service_started diff --git a/indexer/docker-compose.yml b/indexer/docker-compose.yml index 189146fe..19f52ecc 100644 --- a/indexer/docker-compose.yml +++ b/indexer/docker-compose.yml @@ -1,39 +1,58 @@ -version: "3.8" +version: '3.8' services: - indexer: - build: ../. - env_file: - - ./.env + indexer-db: + image: postgres + container_name: kad-indexer-postgres + environment: + POSTGRES_USER: ${DB_USERNAME} + POSTGRES_PASSWORD: ${DB_PASSWORD} + POSTGRES_DB: ${DB_NAME} ports: - - "3000:3000" - command: yarn dev:run - networks: - - monitoring - - prometheus: - image: prom/prometheus + - "5432:5432" volumes: - - ./src/server/prometheus.yml:/etc/prometheus/prometheus.yml - ports: - - "9090:9090" - command: - - "--config.file=/etc/prometheus/prometheus.yml" + - ${PWD}/indexer/postgres:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${DB_USERNAME}"] + interval: 10s + timeout: 5s + retries: 5 + + db-migration: + build: + context: ../ + dockerfile: Dockerfile.development + container_name: db-migration + environment: + DB_HOST: indexer-db + command: ["yarn", "create:database"] depends_on: - - indexer - networks: - - monitoring + indexer-db: + condition: service_healthy - grafana: - image: grafana/grafana - ports: - - "3001:3000" + graphql-app: + build: + context: ../ + dockerfile: Dockerfile.development + container_name: kad-indexer-graphql environment: - - GF_SERVER_HTTP_PORT=3000 + DB_HOST: indexer-db + command: ["yarn", "dev:graphql"] + ports: + - "3001:3001" depends_on: - - prometheus - networks: - - monitoring + db-migration: + condition: service_completed_successfully -networks: - monitoring: + streaming-app: + build: + context: ../ + dockerfile: Dockerfile.development + container_name: kad-indexer-streaming + environment: + DB_HOST: indexer-db + KADENA_GRAPHQL_API_URL: http://graphql-app + command: ["yarn", "dev:streaming"] + depends_on: + graphql-app: + condition: service_started diff --git a/indexer/package.json b/indexer/package.json index 1cd9b93f..cc4c7bb6 100644 --- a/indexer/package.json +++ b/indexer/package.json @@ -64,7 +64,7 @@ }, "scripts": { "create:database": "ts-node src/index.ts --database && yarn migrate:up", - "dev": "docker-compose -f docker-compose.development.yml up && docker-compose logs -f indexer", + "dev": "docker-compose -f docker-compose.yml up && docker-compose logs -f indexer", "dev:database": "ts-node src/index.ts --database", "dev:streaming": "ts-node src/index.ts --streaming", "dev:graphql": "ts-node src/index.ts --graphql",