随着 Docker 的出现20.10,host-gateway应该可以在 Linux 平台上使用(详见这个精彩的答案)。因此,应该可以创建一个docker-compose与平台无关的脚本。(我本人使用的是 Debian。)
以下是一些问题和答案的链接,对我到目前为止有帮助:这里,这里,和这里(以及一些其他答案和评论)
我正在尝试创建一个用于运行The Graph 的脚本,其中涉及在 Docker 容器内运行ipfs并postgres连接到 Docker 外部的区块链实例(在端口 8545 上)。这是脚本:
version: '3'
services:
graph-node:
extra_hosts:
- "host.docker.internal:host-gateway"
image: graphprotocol/graph-node
ports:
- '8000:8000'
- '8001:8001'
- '8020:8020'
- '8030:8030'
- '8040:8040'
depends_on:
- ipfs
- postgres
environment:
postgres_host: postgres
postgres_user: graph-node
postgres_pass: let-me-in
postgres_db: graph-node
ipfs: 'ipfs:5001'
ethereum: 'localhost:http://host.docker.internal:8545'
RUST_LOG: info
ipfs:
image: ipfs/go-ipfs:v0.4.23
ports: …Run Code Online (Sandbox Code Playgroud) 当然有很多关于的 问题和 答案,我已经尝试查看它们,但还没有找到与我的问题非常相似而有用的问题(或解决方案)。仍然很可能有一个解决这个问题的方法,如果是这样,请指出,并对重复的内容表示歉意。setState
以下是功能性 React 组件的相关代码:
const [ state, setState ] = useState({})
useEffect(data => {
const getFromServer = axios.get('http://localhost:3030/poolInfo')
.then(res => {
console.log("RES.DATA LOOKS LIKE THIS:, ", res.data);
setState(res.data); // I also tried setState({...res.data})
console.log("IN AXIOS, STATE IS NOW: ", state);
})
.catch (err => console.error("YO YOU GOT AN ERROR IN AXIOS ", err))
},[])
Run Code Online (Sandbox Code Playgroud)
下面是上面两个的结果console.log:
RES.DATA LOOKS LIKE THIS:, Object { balance: 1000000000000000000, feeAndSplit: Array [500, 20] }
IN AXIOS, STATE IS NOW: …