Ich betreibe ein privates Geth-Testnet und mein Programm befindet sich im Docker. Jedes Mal, wenn ich versuche, api aufzurufen, erhalte ich: keine JSON-RCP-Antwort. Muss ich geth auch auf Docker ausführen?
Etwas, das Sie ausprobieren könnten, ist ein Docker-Compose mit Ihrer App und einem integrierten Geth- Docker-Image .
Zum Beispiel
docker-compose.yml
version: '3'
services:
geth:
image: kunstmaan/ethereum-geth-testnet
ports:
- "8545:8545"
- "30303:30303"
stdin_open: true
tty: true
your_app:
build: ./
ports:
- "8080:8080"
(...)
Erstellen Sie das Bild
$ docker-compose -f docker-compose.yml build
Starte es
$ docker-compose -f docker-compose.yml up
http://localhost:8545
?EXPOSE 8545
Ich bin auf das gleiche Problem gestoßen. Ich hatte einen Webserver, der in einem Docker-Container lief, und einen Ethereum-Knoten (für Testnet), der auf meiner Maschine lief. Es schien, dass die App in Docker keine Verbindung zu dem Knoten außerhalb davon herstellen kann. So habe ich dieses Problem gelöst, ohne den Geth-Knoten in meinem Container ausführen zu müssen:
web3 = new Web3(new Web3.providers.HttpProvider("http://docker.for.mac.localhost:8545"));
Philidor