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)
|
## Changed (2025-09-11)
|
||||||
# Changelog - 4NK Node
|
# Changelog - 4NK Node
|
||||||
|
|
||||||
|
@ -1,9 +1,28 @@
|
|||||||
version: '3.8'
|
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
|
# Updated to use newer Go-based images for builds; placeholder for future dynamic tag adjustments
|
||||||
|
|
||||||
services:
|
services:
|
||||||
tor.local:
|
tor.local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
image: dperson/torproxy:latest
|
image: dperson/torproxy:latest
|
||||||
container_name: tor.local
|
container_name: tor.local
|
||||||
hostname: tor.local
|
hostname: tor.local
|
||||||
@ -16,9 +35,11 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
bitcoin.local:
|
bitcoin.local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
image: ruimarinho/bitcoin-core:latest
|
image: ruimarinho/bitcoin-core:latest
|
||||||
container_name: bitcoin.local
|
container_name: bitcoin.local
|
||||||
hostname: 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:
|
ports:
|
||||||
- "38332:38332"
|
- "38332:38332"
|
||||||
- "29000:29000"
|
- "29000:29000"
|
||||||
@ -36,9 +57,11 @@ services:
|
|||||||
- tor.local
|
- tor.local
|
||||||
|
|
||||||
blindbit-oracle.local:
|
blindbit-oracle.local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
image: git.4nkweb.com/4nk/blindbit-oracle:dev
|
image: git.4nkweb.com/4nk/blindbit-oracle:dev
|
||||||
container_name: blindbit-oracle.local
|
container_name: blindbit-oracle.local
|
||||||
hostname: 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:
|
ports:
|
||||||
- "8000:8000"
|
- "8000:8000"
|
||||||
command: [ "/main", "--datadir", "/blindbit-oracle" ]
|
command: [ "/main", "--datadir", "/blindbit-oracle" ]
|
||||||
@ -63,6 +86,7 @@ services:
|
|||||||
start_period: 40s
|
start_period: 40s
|
||||||
|
|
||||||
sdk_storage.local:
|
sdk_storage.local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
image: git.4nkweb.com/4nk/sdk_storage:dev
|
image: git.4nkweb.com/4nk/sdk_storage:dev
|
||||||
container_name: sdk-storage.local
|
container_name: sdk-storage.local
|
||||||
hostname: sdk-storage.local
|
hostname: sdk-storage.local
|
||||||
@ -83,9 +107,11 @@ services:
|
|||||||
start_period: 40s
|
start_period: 40s
|
||||||
|
|
||||||
sdk_relay1.local:
|
sdk_relay1.local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
image: git.4nkweb.com/4nk/sdk_relay:dev
|
image: git.4nkweb.com/4nk/sdk_relay:dev
|
||||||
container_name: sdk-relay1.local
|
container_name: sdk-relay1.local
|
||||||
hostname: 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:
|
ports:
|
||||||
- "8090:8090"
|
- "8090:8090"
|
||||||
- "8091:8091"
|
- "8091:8091"
|
||||||
@ -114,9 +140,11 @@ services:
|
|||||||
start_period: 40s
|
start_period: 40s
|
||||||
|
|
||||||
sdk_relay2.local:
|
sdk_relay2.local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
image: git.4nkweb.com/4nk/sdk_relay:dev
|
image: git.4nkweb.com/4nk/sdk_relay:dev
|
||||||
container_name: sdk-relay2.local
|
container_name: sdk-relay2.local
|
||||||
hostname: 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:
|
ports:
|
||||||
- "8092:8090"
|
- "8092:8090"
|
||||||
- "8093:8091"
|
- "8093:8091"
|
||||||
@ -145,9 +173,11 @@ services:
|
|||||||
start_period: 40s
|
start_period: 40s
|
||||||
|
|
||||||
sdk_relay3.local:
|
sdk_relay3.local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
image: git.4nkweb.com/4nk/sdk_relay:dev
|
image: git.4nkweb.com/4nk/sdk_relay:dev
|
||||||
container_name: sdk-relay3.local
|
container_name: sdk-relay3.local
|
||||||
hostname: 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:
|
ports:
|
||||||
- "8094:8090"
|
- "8094:8090"
|
||||||
- "8095:8091"
|
- "8095:8091"
|
||||||
@ -176,6 +206,7 @@ services:
|
|||||||
start_period: 40s
|
start_period: 40s
|
||||||
|
|
||||||
sdk_signer.local:
|
sdk_signer.local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
image: git.4nkweb.com/4nk/sdk_signer:dev
|
image: git.4nkweb.com/4nk/sdk_signer:dev
|
||||||
container_name: sdk-signer.local
|
container_name: sdk-signer.local
|
||||||
hostname: sdk-signer.local
|
hostname: sdk-signer.local
|
||||||
@ -202,6 +233,7 @@ services:
|
|||||||
start_period: 40s
|
start_period: 40s
|
||||||
|
|
||||||
ihm_client.local:
|
ihm_client.local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
image: git.4nkweb.com/4nk/ihm_client:dev
|
image: git.4nkweb.com/4nk/ihm_client:dev
|
||||||
container_name: ihm-client.local
|
container_name: ihm-client.local
|
||||||
hostname: ihm-client.local
|
hostname: ihm-client.local
|
||||||
@ -229,6 +261,7 @@ services:
|
|||||||
|
|
||||||
|
|
||||||
coffre-front.local:
|
coffre-front.local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
image: git.4nkweb.com/4nk/lecoffre-front:dev
|
image: git.4nkweb.com/4nk/lecoffre-front:dev
|
||||||
container_name: coffre-front.local
|
container_name: coffre-front.local
|
||||||
hostname: coffre-front.local
|
hostname: coffre-front.local
|
||||||
@ -244,6 +277,7 @@ services:
|
|||||||
- sdk_signer.local
|
- sdk_signer.local
|
||||||
|
|
||||||
coffre-back-mini.local:
|
coffre-back-mini.local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
image: git.4nkweb.com/4nk/lecoffre-back-mini:dev
|
image: git.4nkweb.com/4nk/lecoffre-back-mini:dev
|
||||||
container_name: coffre-back-mini.local
|
container_name: coffre-back-mini.local
|
||||||
hostname: coffre-back-mini.local
|
hostname: coffre-back-mini.local
|
||||||
@ -253,6 +287,7 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
loki.local:
|
loki.local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
image: grafana/loki:2.9.0
|
image: grafana/loki:2.9.0
|
||||||
container_name: loki.local
|
container_name: loki.local
|
||||||
hostname: loki.local
|
hostname: loki.local
|
||||||
@ -268,6 +303,7 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
prometheus.local:
|
prometheus.local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
image: prom/prometheus:v2.54.1
|
image: prom/prometheus:v2.54.1
|
||||||
container_name: prometheus.local
|
container_name: prometheus.local
|
||||||
hostname: prometheus.local
|
hostname: prometheus.local
|
||||||
@ -289,6 +325,7 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
promtail.local:
|
promtail.local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
image: grafana/promtail:2.9.0
|
image: grafana/promtail:2.9.0
|
||||||
container_name: promtail.local
|
container_name: promtail.local
|
||||||
hostname: promtail.local
|
hostname: promtail.local
|
||||||
@ -308,6 +345,7 @@ services:
|
|||||||
- loki.local
|
- loki.local
|
||||||
|
|
||||||
grafana-central.local:
|
grafana-central.local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
image: grafana/grafana:10.0.0
|
image: grafana/grafana:10.0.0
|
||||||
container_name: grafana-central.local
|
container_name: grafana-central.local
|
||||||
hostname: 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
|
## Configuration des images, réseaux et paramètres
|
||||||
|
|
||||||
### Politique de tags et registres
|
### Politique de tags et registres
|
||||||
|
Loading…
x
Reference in New Issue
Block a user