Oracle de distance dans un docker

Voici la solution que j’ai retenue pour mon infra :

duniter-gdev-smith/
├── distance-oracle
│   └── docker-compose.yml
└── docker-compose.yml

et mon fichier distance-oracle/docker-compose.yml :

# Duniter distance oracle plugging to smith node

version: "3.5"

# distance oracle uses same image but another entrypoint
services:
  distance-oracle:
    image: duniter/duniter-v2s-gdev:latest
    entrypoint: docker-distance-entrypoint
    environment:
      ORACLE_RPC_URL: "ws://duniter-smith:9944"
      ORACLE_RESULT_DIR: "/var/lib/duniter/chains/gdev/distance/"
      ORACLE_EXECUTION_INTERVAL: "1800"
      ORACLE_MAX_DEPTH: "5"
      ORACLE_LOG_LEVEL: "debug"
    volumes:
      - data-smith:/var/lib/duniter

# external volume of duniter node to share data for the inherent to read
volumes:
  data-smith:
    name: duniter-gdev-smith_data-smith
    external: true

# external network of duniter node to read data from rpc API
networks:
  duniter:
    name: duniter-gdev-smith_default

Donc :

  • j’utilise la même image mais le nouvel entrypoint
  • je peux arrêter l’oracle de distance indépendamment de mon nœud forgeron (par exemple pour changer le niveau de log)
  • j’utilise un réseau docker pour lire les données depuis le nœud et un volume docker partagé pour poser les données dont l’inherent aura besoin

Tout ce qui me manque, c’est la bonne image docker, qui n’a pas été publiée puisque c’est maintenant une action manuelle.