I have a neo4j database https://localhost:7474
(https://localhost:7474) which I connect via py2neo's Graph Object ("bolt://127.0.0.1:7687
"). All works if not in Docker Environment. Now What i wanted to do is connect to my app (built with fastpi:https://fastapi.tiangolo.com/deployment/docker/
).
My question is how do I connect to locally hosted (in my mac) neo4j db via docker image (fastapi) image hosted in docker.
However I get following error:
docker run e7bf302e02ec
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/py2neo/client/__init__.py", line 742, in acquire
cx = self._free_list.popleft()
IndexError: pop from an empty deque
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/py2neo/wiring.py", line 162, in open
s.connect(address)
ConnectionRefusedError: [Errno 111] Connection refused
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/py2neo/client/bolt.py", line 212, in open
wire = cls._connect(profile, on_broken=on_broken)
File "/usr/local/lib/python3.8/site-packages/py2neo/client/bolt.py", line 228, in _connect
wire = Wire.open(profile.address, keep_alive=True, on_broken=on_broken)
File "/usr/local/lib/python3.8/site-packages/py2neo/wiring.py", line 164, in open
raise_from(WireError("Cannot connect to %r" % (address,)), error)
File "<string>", line 3, in raise_from
py2neo.wiring.WireError: Cannot connect to IPv4Address(('127.0.0.1', 7687))
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/bin/uvicorn", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.8/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/uvicorn/main.py", line 362, in main
run(**kwargs)
File "/usr/local/lib/python3.8/site-packages/uvicorn/main.py", line 386, in run
server.run()
File "/usr/local/lib/python3.8/site-packages/uvicorn/server.py", line 49, in run
loop.run_until_complete(self.serve(sockets=sockets))
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
return future.result()
File "/usr/local/lib/python3.8/site-packages/uvicorn/server.py", line 56, in serve
config.load()
File "/usr/local/lib/python3.8/site-packages/uvicorn/config.py", line 308, in load
self.loaded_app = import_from_string(self.app)
File "/usr/local/lib/python3.8/site-packages/uvicorn/importer.py", line 20, in import_from_string
module = importlib.import_module(module_str)
File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "./app/main.py", line 8, in <module>
from .database import Base
File "./app/database.py", line 28, in <module>
Base = Graph(DATABASE_URL, auth=(DATABASE_USERNAME, DATABASE_PASSWORD))
File "/usr/local/lib/python3.8/site-packages/py2neo/database/__init__.py", line 358, in __init__
self.service = GraphService(profile, **settings)
File "/usr/local/lib/python3.8/site-packages/py2neo/database/__init__.py", line 189, in __init__
self._connector = Connector(profile, **connector_settings)
File "/usr/local/lib/python3.8/site-packages/py2neo/client/__init__.py", line 893, in __init__
self.add_pools(self._profile)
File "/usr/local/lib/python3.8/site-packages/py2neo/client/__init__.py", line 913, in add_pools
pool = ConnectionPool.open(
File "/usr/local/lib/python3.8/site-packages/py2neo/client/__init__.py", line 570, in open
seeds = [pool.acquire() for _ in range(init_size or cls.default_init_size)]
File "/usr/local/lib/python3.8/site-packages/py2neo/client/__init__.py", line 570, in <listcomp>
seeds = [pool.acquire() for _ in range(init_size or cls.default_init_size)]
File "/usr/local/lib/python3.8/site-packages/py2neo/client/__init__.py", line 749, in acquire
cx = self.connect()
File "/usr/local/lib/python3.8/site-packages/py2neo/client/__init__.py", line 706, in connect
cx = Connection.open(self.profile, user_agent=self.user_agent,
File "/usr/local/lib/python3.8/site-packages/py2neo/client/__init__.py", line 141, in open
return Bolt.open(profile, user_agent=user_agent,
File "/usr/local/lib/python3.8/site-packages/py2neo/client/bolt.py", line 223, in open
raise_from(ConnectionUnavailable("Cannot open connection to %r" % profile), error)
File "<string>", line 3, in raise_from
py2neo.client.ConnectionUnavailable: Cannot open connection to ConnectionProfile('bolt://neo4j@127.0.0.1:7687')