【问题标题】:No connection between my Flask Container and the Ganache Container我的 Flask Container 和 Ganache Container 之间没有连接
【发布时间】:2019-10-23 16:56:16
【问题描述】:

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

我的 docker-compose 文件:

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)

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

非常感谢。

【问题讨论】:

    标签: python docker flask docker-compose ganache


    【解决方案1】:

    改变:

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

    到:

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

    当您从 compose 设置容器时,它们都连接到 compose 创建的默认网络。 blockchain 在这种情况下是 blockchain 容器的 DNS 名称,将自动解析为容器 IP。

    【讨论】:

    • 刚刚试过这个,得到以下错误信息HTTPConnectionPool(host='blockchain', port=8545): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2ad64d0400>: Failed to establish a new connection: [Errno 111] Connection refused'))
    • 您能从您的主机连接到blockchain 服务吗?
    • 当我运行docker-compose up app blockchain 时,我再次收到错误消息。但如果我先运行 docker-compose up blockchain 然后运行 ​​docker-compose up app 它就可以了。为什么会这样?
    • 因为在app 容器尝试访问它之前,您的区块链容器可能尚未完全初始化以接受连接。而且,当您在指定服务名称的同时生成服务时,您可能会在足够长的时间间隔内执行此操作,以便在应用程序容器尝试访问它之前初始化区块链容器。检查this
    • 非常感谢您的帮助。使用restart: always我已经能够解决错误
    猜你喜欢
    • 1970-01-01
    • 2021-06-28
    • 2022-08-08
    • 2014-09-24
    • 2022-08-24
    • 2020-07-19
    • 2018-01-01
    • 2017-11-14
    • 2021-07-18
    相关资源
    最近更新 更多