Go-Ethereum
我可以單獨執行 docker 和 geth 嗎?
我執行私人 geth 測試網,我的程序在 docker 上。每次我嘗試呼叫 api 我都會得到:沒有 JSON RCP 響應。我也必須在 docker 上執行 geth 嗎?
您可以嘗試使用docker-compose與您的應用程序和內置geth docker image。
例如
碼頭工人-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" (...)
建構鏡像
$ docker-compose -f docker-compose.yml build
執行
$ docker-compose -f docker-compose.yml up
我遇到了同樣的問題。我有一個在 Docker 容器中執行的 Web 伺服器和一個在我的機器上執行的乙太坊節點(用於測試網)。似乎 Docker 中的應用程序無法連接到它之外的節點。以下是我無需在容器內執行 Geth 節點即可解決該問題的方法:
- 確保在啟動 Geth 時有 –rpc 和 –rpccorsdomain 標誌
- 在您在 Docker 中執行的應用程序中,確保將您的 web3 提供程序正確指向您的機器https://docs.docker.com/docker-for-mac/networking/對於我必須使用的機器:“docker.for.mac .localhost”。
web3 = new Web3(new Web3.providers.HttpProvider("http://docker.for.mac.localhost:8545"));