1

我想将我的 Flask Docker 容器连接到 Ganache Docker 容器。Ganache 容器可以正常工作。我将 Flask 应用程序本地连接到 Ganache 容器,一切正常。但是如果我使用我的 Flask 容器,应用程序将无法连接到 Ganache 容器。

我的码头工人撰写文件:

version: "3"
services:
    app:
        image: flask-api
        build:
             context: .
             dockerfile: Dockerfile-flask-api
        ports:
             - '5000:5000'
        volumes:
             - ./app:/app
        depends_on:
             - blockchain
    blockchain:
        image: trufflesuite/ganache-cli:latest
        ports:
             - '8545:8545'

我的 Flask 应用程序的 Dockerfile:

FROM python:3.7

WORKDIR /test
ADD test /test

EXPOSE 5000

RUN pip install -r requirements.txt

ENTRYPOINT ["python", "app.py"]

使用以下命令,我在 Flask 应用程序中调用 Ganache 容器

web3 = Web3(HTTPProvider("http://0.0.0.0:8545"))

我通过 docker-compose up 执行应用程序。我收到以下错误消息

ConnectionError: HTTPConnectionPool(host='0.0.0.0', port=8545)

也许有人可以帮我解决这个问题。

非常感谢。

4

1 回答 1

1

Change :

web3 = Web3(HTTPProvider("http://0.0.0.0:8545"))

to :

web3 = Web3(HTTPProvider("http://blockchain:8545"))

When you set up containers from compose they are all connected to the default network created by compose. blockchain is in this case the DNS name of blockchain container and will be resolved to container IP automatically.

于 2019-06-08T13:56:27.423 回答