Skip to content
Snippets Groups Projects
docker-compose.yml 3.00 KiB
version: "3.5"

services:
  mongodb_container:
    image: mongo:latest
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: password
    ports:
      - 27017:27017
    volumes:
      - mongodb_data_container:/data/db
 
  entry_node:
    container_name: entry_node
    image: golang:1.14.4
    entrypoint: /go/bin/main
    command: >
      --config-dir=/tmp
      --database.directory=/tmp/mainnetdb
      --autopeering.seed=base58:8kPPCqaJFAt8BJtx6qw5PN8bKEM2XKXor6PxkmHf6bcr
      --autopeering.entryNodes=
      --analysis.server.bindAddress=0.0.0.0:1888
      --analysis.dashboard.bindAddress=0.0.0.0:9000
      --node.enablePlugins=analysis-server,analysis-dashboard
      --analysis.dashboard.dev=false
      --node.disablePlugins=portcheck,dashboard,analysis-client,gossip,drng,issuer,sync,metrics,messagelayer,valuetransfers,webapi,webapibroadcastdataendpoint,webapifindtransactionhashesendpoint,webapigetneighborsendpoint,webapigettransactionobjectsbyhashendpoint,webapigettransactiontrytesbyhashendpoint
    volumes:
      - ./config.docker.json:/tmp/config.json:ro
      - goshimmer-cache:/go
    ports:
      - "127.0.0.1:9000:9000/tcp" # analysis dashboard
    expose:
      - "1888/tcp" # analysis server (within Docker network)

  peer_master:
    container_name: peer_master
    image: golang:1.14.4
    entrypoint: /go/bin/main
    command: >
      --config-dir=/tmp
      --database.directory=/tmp/mainnetdb
      --node.enablePlugins=bootstrap,prometheus
    volumes:
      - ./config.docker.json:/tmp/config.json:ro
      - goshimmer-cache:/go
    ports:
      - "127.0.0.1:8080:8080/tcp" # web API
      - "127.0.0.1:8081:8081/tcp" # dashboard
      - "127.0.0.1:9311:9311/tcp" # prometheus
    depends_on:
      - entry_node

  peer_replica:
    image: golang:1.14.4
    entrypoint: /go/bin/main
    command: >
      --config-dir=/tmp
      --database.directory=/tmp/mainnetdb
      --node.disablePlugins=dashboard,portcheck
    volumes:
      - ./config.docker.json:/tmp/config.json:ro
      - goshimmer-cache:/go
    expose:
      - "8080/tcp" # web API (within Docker network)
    depends_on:
      - entry_node

  prometheus:
    image: prom/prometheus:latest