【发布时间】:2021-12-27 23:23:08
【问题描述】:
我使用 docker-compose 捆绑了一个与 Neo4j 数据库交互的 Flask python 应用程序。两个 docker 镜像分别工作正常,但是我无法用 docker-compose 将两者连接起来,当我启动sudo docker-compose up --build 命令时,python 进程开始运行时出现以下错误:
Building backend-service
Sending build context to Docker daemon 39.87MB
Step 1/6 : FROM continuumio/miniconda3
---> 67414e5844b6
Step 2/6 : COPY . /usr/src/app
---> Using cache
---> e72c927b5bc8
Step 3/6 : WORKDIR /usr/src/app
---> Using cache
---> ab864f3a6042
Step 4/6 : RUN conda env create -f environment.yml
---> Using cache
---> 4b36888dd60b
Step 5/6 : SHELL ["conda", "run", "-n", "VisualQueries", "/bin/bash", "-c"]
---> Using cache
---> d25cbc823371
Step 6/6 : RUN python "VisualQueries.py"
---> Running in 23a473684c00
ERROR conda.cli.main_run:execute(33): Subprocess for 'conda run ['/bin/bash', '-c', 'python "VisualQueries.py"']' command failed. (See above for error)
Traceback (most recent call last):
File "VisualQueries.py", line 28, in <module>
neo4j_connector = Neo4jDirectConnector()
File "/usr/src/app/hig/Neo4jDirectConnector.py", line 104, in __init__
self.find_node_labels()
File "/usr/src/app/hig/Neo4jDirectConnector.py", line 139, in find_node_labels
labels = self.query("""CALL db.labels()""")
File "/usr/src/app/hig/Neo4jDirectConnector.py", line 123, in query
assert self.driver is not None, "Driver not initialized!"
AssertionError: Driver not initialized!
Failed to create the driver: Cannot resolve address neo4j:7687
The command 'conda run -n VisualQueries /bin/bash -c python "VisualQueries.py"' returned a non-zero code: 1
ERROR: Service 'backend-service' failed to build : Build failed
似乎我无法从 python 进程启动到 Neo4j 数据库的连接。我使用以下命令,neo4j 是 Neo4j 数据库的 docker 服务的名称:
uri = "bolt://neo4j:7687"
driver = GraphDatabase.driver(uri, auth=("neo4j", "neo4j"))
这是我的 docker-compose.yml 文件:
version: '3.7'
services:
neo4j:
image: neo4j:4.4.2-community
hostname: neo4j
container_name: neo4j
restart: always
ports:
- "7474:7474"
- "7687:7687"
volumes:
- /var/lib/neo4j/plugins/:/plugins
environment:
- NEO4J_dbms_memory_pagecache_size=1G
- NEO4J_dbms.memory.heap.initial_size=1G
- NEO4J_dbms_memory_heap_max__size=1G
- NEO4J_AUTH=none
networks:
- visual-queries
backend-service:
build: ./HistorIGraph
volumes:
- ./HistorIGraph:/usr/src/app
ports:
- "10090:10090"
depends_on:
- neo4j
networks:
- visual-queries
networks:
visual-queries:
driver: bridge
【问题讨论】:
标签: python docker-compose neo4j