infra: DNS/extra_hosts et attentes de démarrage (bitcoin, oracle, relays); docs
This commit is contained in:
parent
f581bddd1e
commit
75e7bc3215
12
CHANGELOG.md
12
CHANGELOG.md
@ -1,3 +1,15 @@
|
||||
## [Unreleased]
|
||||
|
||||
### Changed
|
||||
- Docker: définition explicite de la passerelle `172.20.0.1` pour `4nk_network` et ajout de `dns: 172.20.0.1` pour les services.
|
||||
- Ajout d’un ancrage `x-4nk-extra-hosts` et application à tous les services pour garantir la résolution intra-conteneur.
|
||||
- Entrypoints d’attente:
|
||||
- `bitcoin.local`: attente brève réseau/DNS avant lancement.
|
||||
- `blindbit-oracle.local`, `sdk_relay1/2/3.local`: attente de la résolution `bitcoin.local` et du cookie RPC avant lancement.
|
||||
|
||||
### Docs
|
||||
- `docs/CONFIGURATION.md`: documentation du réseau, DNS, extra_hosts et attentes de démarrage.
|
||||
|
||||
## Changed (2025-09-11)
|
||||
# Changelog - 4NK Node
|
||||
|
||||
|
@ -1,9 +1,28 @@
|
||||
version: '3.8'
|
||||
|
||||
x-4nk-extra-hosts: &x-4nk-extra-hosts
|
||||
extra_hosts:
|
||||
- "tor.local:172.20.0.10"
|
||||
- "bitcoin.local:172.20.0.11"
|
||||
- "blindbit-oracle.local:172.20.0.12"
|
||||
- "sdk-storage.local:172.20.0.13"
|
||||
- "sdk-relay1.local:172.20.0.14"
|
||||
- "sdk-relay2.local:172.20.0.15"
|
||||
- "sdk-relay3.local:172.20.0.16"
|
||||
- "sdk-signer.local:172.20.0.17"
|
||||
- "ihm-client.local:172.20.0.18"
|
||||
- "coffre-front.local:172.20.0.32"
|
||||
- "coffre-back-mini.local:172.20.0.33"
|
||||
- "grafana-central.local:172.20.0.50"
|
||||
- "loki.local:172.20.0.51"
|
||||
- "prometheus.local:172.20.0.52"
|
||||
- "promtail.local:172.20.0.53"
|
||||
|
||||
# Updated to use newer Go-based images for builds; placeholder for future dynamic tag adjustments
|
||||
|
||||
services:
|
||||
tor.local:
|
||||
<<: *x-4nk-extra-hosts
|
||||
image: dperson/torproxy:latest
|
||||
container_name: tor.local
|
||||
hostname: tor.local
|
||||
@ -16,9 +35,11 @@ services:
|
||||
restart: unless-stopped
|
||||
|
||||
bitcoin.local:
|
||||
<<: *x-4nk-extra-hosts
|
||||
image: ruimarinho/bitcoin-core:latest
|
||||
container_name: bitcoin.local
|
||||
hostname: bitcoin.local
|
||||
entrypoint: ["/bin/sh","-c","for i in $(seq 1 30); do if grep -q '172.20.0.11' /proc/net/fib_trie 2>/dev/null; then break; fi; sleep 1; done; exec /entrypoint.sh bitcoind"]
|
||||
ports:
|
||||
- "38332:38332"
|
||||
- "29000:29000"
|
||||
@ -36,9 +57,11 @@ services:
|
||||
- tor.local
|
||||
|
||||
blindbit-oracle.local:
|
||||
<<: *x-4nk-extra-hosts
|
||||
image: git.4nkweb.com/4nk/blindbit-oracle:dev
|
||||
container_name: blindbit-oracle.local
|
||||
hostname: blindbit-oracle.local
|
||||
entrypoint: ["/bin/sh","-c","for i in $(seq 1 30); do if getent hosts bitcoin.local >/dev/null 2>&1 && [ -f /home/bitcoin/.bitcoin/signet/.cookie ]; then break; fi; sleep 1; done; exec \"$@\"","--"]
|
||||
ports:
|
||||
- "8000:8000"
|
||||
command: [ "/main", "--datadir", "/blindbit-oracle" ]
|
||||
@ -63,6 +86,7 @@ services:
|
||||
start_period: 40s
|
||||
|
||||
sdk_storage.local:
|
||||
<<: *x-4nk-extra-hosts
|
||||
image: git.4nkweb.com/4nk/sdk_storage:dev
|
||||
container_name: sdk-storage.local
|
||||
hostname: sdk-storage.local
|
||||
@ -83,9 +107,11 @@ services:
|
||||
start_period: 40s
|
||||
|
||||
sdk_relay1.local:
|
||||
<<: *x-4nk-extra-hosts
|
||||
image: git.4nkweb.com/4nk/sdk_relay:dev
|
||||
container_name: sdk-relay1.local
|
||||
hostname: sdk-relay1.local
|
||||
entrypoint: ["/bin/sh","-c","for i in $(seq 1 30); do if getent hosts bitcoin.local >/dev/null 2>&1 && [ -f /home/bitcoin/.bitcoin/signet/.cookie ]; then break; fi; sleep 1; done; exec \"$@\""]
|
||||
ports:
|
||||
- "8090:8090"
|
||||
- "8091:8091"
|
||||
@ -114,9 +140,11 @@ services:
|
||||
start_period: 40s
|
||||
|
||||
sdk_relay2.local:
|
||||
<<: *x-4nk-extra-hosts
|
||||
image: git.4nkweb.com/4nk/sdk_relay:dev
|
||||
container_name: sdk-relay2.local
|
||||
hostname: sdk-relay2.local
|
||||
entrypoint: ["/bin/sh","-c","for i in $(seq 1 30); do if getent hosts bitcoin.local >/dev/null 2>&1 && [ -f /home/bitcoin/.bitcoin/signet/.cookie ]; then break; fi; sleep 1; done; exec \"$@\""]
|
||||
ports:
|
||||
- "8092:8090"
|
||||
- "8093:8091"
|
||||
@ -145,9 +173,11 @@ services:
|
||||
start_period: 40s
|
||||
|
||||
sdk_relay3.local:
|
||||
<<: *x-4nk-extra-hosts
|
||||
image: git.4nkweb.com/4nk/sdk_relay:dev
|
||||
container_name: sdk-relay3.local
|
||||
hostname: sdk-relay3.local
|
||||
entrypoint: ["/bin/sh","-c","for i in $(seq 1 30); do if getent hosts bitcoin.local >/dev/null 2>&1 && [ -f /home/bitcoin/.bitcoin/signet/.cookie ]; then break; fi; sleep 1; done; exec \"$@\""]
|
||||
ports:
|
||||
- "8094:8090"
|
||||
- "8095:8091"
|
||||
@ -176,6 +206,7 @@ services:
|
||||
start_period: 40s
|
||||
|
||||
sdk_signer.local:
|
||||
<<: *x-4nk-extra-hosts
|
||||
image: git.4nkweb.com/4nk/sdk_signer:dev
|
||||
container_name: sdk-signer.local
|
||||
hostname: sdk-signer.local
|
||||
@ -202,6 +233,7 @@ services:
|
||||
start_period: 40s
|
||||
|
||||
ihm_client.local:
|
||||
<<: *x-4nk-extra-hosts
|
||||
image: git.4nkweb.com/4nk/ihm_client:dev
|
||||
container_name: ihm-client.local
|
||||
hostname: ihm-client.local
|
||||
@ -229,6 +261,7 @@ services:
|
||||
|
||||
|
||||
coffre-front.local:
|
||||
<<: *x-4nk-extra-hosts
|
||||
image: git.4nkweb.com/4nk/lecoffre-front:dev
|
||||
container_name: coffre-front.local
|
||||
hostname: coffre-front.local
|
||||
@ -244,6 +277,7 @@ services:
|
||||
- sdk_signer.local
|
||||
|
||||
coffre-back-mini.local:
|
||||
<<: *x-4nk-extra-hosts
|
||||
image: git.4nkweb.com/4nk/lecoffre-back-mini:dev
|
||||
container_name: coffre-back-mini.local
|
||||
hostname: coffre-back-mini.local
|
||||
@ -253,6 +287,7 @@ services:
|
||||
restart: unless-stopped
|
||||
|
||||
loki.local:
|
||||
<<: *x-4nk-extra-hosts
|
||||
image: grafana/loki:2.9.0
|
||||
container_name: loki.local
|
||||
hostname: loki.local
|
||||
@ -268,6 +303,7 @@ services:
|
||||
restart: unless-stopped
|
||||
|
||||
prometheus.local:
|
||||
<<: *x-4nk-extra-hosts
|
||||
image: prom/prometheus:v2.54.1
|
||||
container_name: prometheus.local
|
||||
hostname: prometheus.local
|
||||
@ -289,6 +325,7 @@ services:
|
||||
restart: unless-stopped
|
||||
|
||||
promtail.local:
|
||||
<<: *x-4nk-extra-hosts
|
||||
image: grafana/promtail:2.9.0
|
||||
container_name: promtail.local
|
||||
hostname: promtail.local
|
||||
@ -308,6 +345,7 @@ services:
|
||||
- loki.local
|
||||
|
||||
grafana-central.local:
|
||||
<<: *x-4nk-extra-hosts
|
||||
image: grafana/grafana:10.0.0
|
||||
container_name: grafana-central.local
|
||||
hostname: grafana-central.local
|
||||
|
@ -1,3 +1,43 @@
|
||||
# Configuration réseau et résolution de noms (4NK_node)
|
||||
|
||||
## Réseau Docker `4nk_network`
|
||||
|
||||
- Sous-réseau: `172.20.0.0/16`
|
||||
- Passerelle: `172.20.0.1`
|
||||
- IPs statiques par service (extrait):
|
||||
- `tor.local`: 172.20.0.10
|
||||
- `bitcoin.local`: 172.20.0.11
|
||||
- `blindbit-oracle.local`: 172.20.0.12
|
||||
- `sdk-storage.local`: 172.20.0.13
|
||||
- `sdk-relay{1,2,3}.local`: 172.20.0.14-16
|
||||
- `sdk-signer.local`: 172.20.0.17
|
||||
- `ihm-client.local`: 172.20.0.18
|
||||
- `grafana-central.local`: 172.20.0.50
|
||||
- `loki.local`: 172.20.0.51
|
||||
- `prometheus.local`: 172.20.0.52
|
||||
- `promtail.local`: 172.20.0.53
|
||||
|
||||
## DNS local (dnsmasq)
|
||||
|
||||
- Fichier chargé par le service système: `/etc/dnsmasq.d/4nk_node.conf` (lien symbolique vers `conf/dnsmasq/dnsmasq.conf`).
|
||||
- Port d’écoute: 53.
|
||||
- Les entrées `address=/.../172.20.x.x` assurent la résolution des hôtes `*.local` du réseau projet.
|
||||
|
||||
## Compose: DNS et extra_hosts
|
||||
|
||||
- Les services utilisent `dns: [172.20.0.1]` pour interroger dnsmasq côté hôte.
|
||||
- Un ancrage YAML `x-4nk-extra-hosts` fournit une liste `extra_hosts` pour garantir la résolution intra-conteneur, y compris au tout début du cycle de vie.
|
||||
|
||||
## Démarrage ordonné et attentes réseau
|
||||
|
||||
- `bitcoin.local`: entrypoint attend brièvement la disponibilité réseau/DNS avant de lancer `bitcoind`.
|
||||
- `blindbit-oracle.local` et `sdk_relay{1,2,3}.local`: entrypoint attend la résolution de `bitcoin.local` et la présence de `/home/bitcoin/.bitcoin/signet/.cookie` avant d’exécuter la commande du service.
|
||||
|
||||
## Commandes utiles
|
||||
|
||||
- Redémarrer dnsmasq: `systemctl restart dnsmasq`
|
||||
- Vérifier une résolution depuis un conteneur: `docker exec tor.local nslookup bitcoin.local 172.20.0.1`
|
||||
|
||||
## Configuration des images, réseaux et paramètres
|
||||
|
||||
### Politique de tags et registres
|
||||
|
Loading…
x
Reference in New Issue
Block a user