Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4J python驱动程序没有';不要在放入docker容器时引发错误_Python_Docker_Neo4j_Neo4j Python Driver - Fatal编程技术网

Neo4J python驱动程序没有';不要在放入docker容器时引发错误

Neo4J python驱动程序没有';不要在放入docker容器时引发错误,python,docker,neo4j,neo4j-python-driver,Python,Docker,Neo4j,Neo4j Python Driver,我有一个问题可能很简单,但我自己找不到解决办法 我使用docker compose运行了两个docker容器,一个是带有fastapi的python服务器,另一个是禁用auth的neo4j官方映像(用于开发环境) 下面是连接数据库的一段代码: def __new__(cls, settings: Neo4jSettings, *args, **kwargs): try: cls.driver = GraphDatabase.driver(setti

我有一个问题可能很简单,但我自己找不到解决办法

我使用docker compose运行了两个docker容器,一个是带有fastapi的python服务器,另一个是禁用auth的neo4j官方映像(用于开发环境) 下面是连接数据库的一段代码:

    def __new__(cls, settings: Neo4jSettings, *args, **kwargs):
        try:
            cls.driver = GraphDatabase.driver(settings.neo4j_url())
            log.info(f'Connected as "{settings.neo4j_user}" on {settings.neo4j_url()}')

        except exceptions.ServiceUnavailable as err:
            log.error(f'Service Unavailable: {err}')
        # other error handling
在我的本地机器上:一切正常:当数据库运行时,我看到
connected…
消息,一切正常。当我关闭数据库时,neo4j潜水员发出
服务不可用
,我显示错误

在DOCKER上:当两个容器运行时,使用正确的数据库url,所有操作都按预期进行。 但是,如果我将url更改为随机url,或者即使关闭数据库容器,也会显示
connected…
消息。 看起来像neo4j驱动程序不要引发任何异常。。。但却找不到理由

这里是我的Dockerfile:

FROM python:3.7-slim # tried with 3.9 too  

WORKDIR /app


ENV VIRTUAL_ENV=/opt/venv
RUN python3 -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"

COPY requirements.txt .

RUN pip install --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["uvicorn", "main:api", "--reload" ,"--host", "0.0.0.0", "--port", "8000"]

谢谢您,请原谅我的英语…

您应该对托管事务运行一个查询,以确保您的设置得到实际执行。好吧,我想这样试一下,但是如何解释Docker内部和外部有两种不同的行为呢?谢谢你!