해당 에러가 향후 모듈화 및 배포에 치명적이라고 생각해서 컨테이너 관리 관련 논의가 필요해보입니다.
다른 분들의 참조를 위해 전체 터미널 로그를 공유하겠습니다.
(pseudo-entertainment) chan@gang-gamchan-ui-MacBookPro-2 Pseudo-Entertainment-Company % langgraph dockerfile -c langgraph.json agents/text/dockerfile
🔍 Validating configuration at path: /Users/chan/Pseudo-Entertainment-Company/langgraph.json
✅ Configuration validated!
📝 Generating Dockerfile at /Users/chan/Pseudo-Entertainment-Company/agents/text/dockerfile
✅ Created: Dockerfile
🎉 Files generated successfully at path /Users/chan/Pseudo-Entertainment-Company/agents/text!
(pseudo-entertainment) chan@gang-gamchan-ui-MacBookPro-2 Pseudo-Entertainment-Company % docker build -f agents/text/dockerfile -t text-agents .
[+] Building 2.6s (7/11) docker:desktop-linux
=> [internal] load build definition from dockerfile 0.0s
=> => transferring dockerfile: 1.28kB 0.0s
=> [internal] load metadata for docker.io/langchain/lan 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build context 0.5s
=> => transferring context: 1.99MB 0.5s
=> CACHED [1/7] FROM docker.io/langchain/langgraph-api: 0.0s
=> [2/7] ADD . /deps/Pseudo-Entertainment-Company 0.6s
=> ERROR [3/7] RUN PYTHONDONTWRITEBYTECODE=1 pip instal 1.5s
------
> [3/7] RUN PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c /api/constraints.txt -e /deps/*:
0.248 Obtaining file:///deps/Pseudo-Entertainment-Company
0.249 Installing build dependencies: started
1.185 Installing build dependencies: finished with status 'done'
1.185 Checking if build backend supports build_editable: started
1.256 Checking if build backend supports build_editable: finished with status 'done'
1.257 Getting requirements to build editable: started
1.345 Getting requirements to build editable: finished with status 'error'
1.347 error: subprocess-exited-with-error
1.347
1.347 × Getting requirements to build editable did not run successfully.
1.347 │ exit code: 1
1.347 ╰─> [14 lines of output]
1.347 error: Multiple top-level packages discovered in a flat-layout: ['poc', 'media', 'agents'].
1.347
1.347 To avoid accidental inclusion of unwanted files or directories,
1.347 setuptools will not proceed with this build.
1.347
1.347 If you are trying to create a single distribution with multiple packages
1.347 on purpose, you should not rely on automatic discovery.
1.347 Instead, consider the following options:
1.347
1.347 1. set up custom discovery (`find` directive with `include` or `exclude`)
1.347 2. use a `src-layout`
1.347 3. explicitly set `py_modules` or `packages` with a list of names
1.347
1.347 To find more information, look for "package discovery" on setuptools docs.
1.347 [end of output]
1.347
1.347 note: This error originates from a subprocess, and is likely not a problem with pip.
1.348 error: subprocess-exited-with-error
1.348
1.348 × Getting requirements to build editable did not run successfully.
1.348 │ exit code: 1
1.348 ╰─> See above for output.
1.348
1.348 note: This error originates from a subprocess, and is likely not a problem with pip.
1.413
1.413 [notice] A new release of pip is available: 24.0 -> 25.1.1
1.413 [notice] To update, run: pip install --upgrade pip
------
dockerfile:10
--------------------
8 |
9 | # -- Installing all local dependencies --
10 | >>> RUN PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c /api/constraints.txt -e /deps/*
11 | # -- End of local dependencies install --
12 | ENV LANGSERVE_GRAPHS='{"text": "/deps/Pseudo-Entertainment-Company/agents/text/workflow.py:text_workflow"}'
--------------------
ERROR: failed to solve: process "/bin/sh -c PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c /api/constraints.txt -e /deps/*" did not complete successfully: exit code: 1
(pseudo-entertainment) chan@gang-gamchan-ui-MacBookPro-2 Pseudo-Entertainment-Company %
(pseudo-entertainment) chan@gang-gamchan-ui-MacBookPro-2 Pseudo-Entertainment-Company % langgraph dockerfile -c langgraph.json agents/text/dockerfile
🔍 Validating configuration at path: /Users/chan/Pseudo-Entertainment-Company/langgraph.json
✅ Configuration validated!
📝 Generating Dockerfile at /Users/chan/Pseudo-Entertainment-Company/agents/text/dockerfile
✅ Created: Dockerfile
🎉 Files generated successfully at path /Users/chan/Pseudo-Entertainment-Company/agents/text!
(pseudo-entertainment) chan@gang-gamchan-ui-MacBookPro-2 Pseudo-Entertainment-Company % docker build -f agents/text/dockerfile -t text-agents .
[+] Building 1.6s (7/10) docker:desktop-linux
=> [internal] load build definition from dockerfile 0.0s
=> => transferring dockerfile: 1.21kB 0.0s
=> [internal] load metadata for docker.io/langchain/langgraph-api:3.11 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build context 0.1s
=> => transferring context: 5.45kB 0.1s
=> CACHED [1/6] FROM docker.io/langchain/langgraph-api:3.11 0.0s
=> [2/6] ADD ./agents/text /deps/text 0.0s
=> ERROR [3/6] RUN PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c / 1.5s
------
> [3/6] RUN PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c /api/constraints.txt -e /deps/*:
0.257 Obtaining file:///deps/text
0.258 Installing build dependencies: started
1.179 Installing build dependencies: finished with status 'done'
1.180 Checking if build backend supports build_editable: started
1.250 Checking if build backend supports build_editable: finished with status 'done'
1.251 Getting requirements to build editable: started
1.342 Getting requirements to build editable: finished with status 'error'
1.344 error: subprocess-exited-with-error
1.344
1.344 × Getting requirements to build editable did not run successfully.
1.344 │ exit code: 1
1.344 ╰─> [14 lines of output]
1.344 error: Multiple top-level packages discovered in a flat-layout: ['mcp', 'modules'].
1.344
1.344 To avoid accidental inclusion of unwanted files or directories,
1.344 setuptools will not proceed with this build.
1.344
1.344 If you are trying to create a single distribution with multiple packages
1.344 on purpose, you should not rely on automatic discovery.
1.344 Instead, consider the following options:
1.344
1.344 1. set up custom discovery (`find` directive with `include` or `exclude`)
1.344 2. use a `src-layout`
1.344 3. explicitly set `py_modules` or `packages` with a list of names
1.344
1.344 To find more information, look for "package discovery" on setuptools docs.
1.344 [end of output]
1.344
1.344 note: This error originates from a subprocess, and is likely not a problem with pip.
1.345 error: subprocess-exited-with-error
1.345
1.345 × Getting requirements to build editable did not run successfully.
1.345 │ exit code: 1
1.345 ╰─> See above for output.
1.345
1.345 note: This error originates from a subprocess, and is likely not a problem with pip.
1.409
1.409 [notice] A new release of pip is available: 24.0 -> 25.1.1
1.409 [notice] To update, run: pip install --upgrade pip
------
dockerfile:10
--------------------
8 |
9 | # -- Installing all local dependencies --
10 | >>> RUN PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c /api/constraints.txt -e /deps/*
11 | # -- End of local dependencies install --
12 | ENV LANGSERVE_GRAPHS='{"text": "/deps/text/workflow.py:text_workflow"}'
--------------------
ERROR: failed to solve: process "/bin/sh -c PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c /api/constraints.txt -e /deps/*" did not complete successfully: exit code: 1
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/i2s70zof0hwf9haq9p3zbz5vl
(pseudo-entertainment) chan@gang-gamchan-ui-MacBookPro-2 Pseudo-Entertainment-Company % langgraph dockerfile -c langgraph.json agents/text/dockerfile
🔍 Validating configuration at path: /Users/chan/Pseudo-Entertainment-Company/langgraph.json
✅ Configuration validated!
📝 Generating Dockerfile at /Users/chan/Pseudo-Entertainment-Company/agents/text/dockerfile
✅ Created: Dockerfile
🎉 Files generated successfully at path /Users/chan/Pseudo-Entertainment-Company/agents/text!
(pseudo-entertainment) chan@gang-gamchan-ui-MacBookPro-2 Pseudo-Entertainment-Company % docker build -f agents/text/dockerfile -t text-agents .
[+] Building 2.0s (7/10) docker:desktop-linux
=> [internal] load build definition from dockerfile 0.0s
=> => transferring dockerfile: 1.21kB 0.0s
=> [internal] load metadata for docker.io/langchain/langgraph-api:3.11 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 6.17kB 0.0s
=> CACHED [1/6] FROM docker.io/langchain/langgraph-api:3.11 0.0s
=> [2/6] ADD ./agents/text /deps/text 0.0s
=> ERROR [3/6] RUN PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c / 1.9s
------
> [3/6] RUN PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c /api/constraints.txt -e /deps/*:
0.247 Obtaining file:///deps/text
0.248 Installing build dependencies: started
1.168 Installing build dependencies: finished with status 'done'
1.169 Checking if build backend supports build_editable: started
1.243 Checking if build backend supports build_editable: finished with status 'done'
1.244 Getting requirements to build editable: started
1.335 Getting requirements to build editable: finished with status 'done'
1.336 Preparing editable metadata (pyproject.toml): started
1.433 Preparing editable metadata (pyproject.toml): finished with status 'done'
1.491 Collecting langchain-mcp-adapters>=0.0.9 (from text==0.1.0)
1.527 Downloading langchain_mcp_adapters-0.1.7-py3-none-any.whl.metadata (9.6 kB)
1.553 Collecting langchain-openai>=0.3.12 (from text==0.1.0)
1.558 Downloading langchain_openai-0.3.22-py3-none-any.whl.metadata (2.3 kB)
1.573 Collecting mcp>=1.6.0 (from text==0.1.0)
1.580 Downloading mcp-1.9.4-py3-none-any.whl.metadata (28 kB)
1.797 Collecting newsapi-python>=0.2.7 (from text==0.1.0)
1.804 Downloading newsapi_python-0.2.7-py2.py3-none-any.whl.metadata (1.2 kB)
1.805 INFO: pip is looking at multiple versions of text to determine which version is compatible with other requirements. This could take a while.
1.805 ERROR: Package 'text' requires a different Python: 3.11.12 not in '>=3.13'
1.886
1.886 [notice] A new release of pip is available: 24.0 -> 25.1.1
1.886 [notice] To update, run: pip install --upgrade pip
------
dockerfile:10
--------------------
8 |
9 | # -- Installing all local dependencies --
10 | >>> RUN PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c /api/constraints.txt -e /deps/*
11 | # -- End of local dependencies install --
12 | ENV LANGSERVE_GRAPHS='{"text": "/deps/text/workflow.py:text_workflow"}'
--------------------
ERROR: failed to solve: process "/bin/sh -c PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c /api/constraints.txt -e /deps/*" did not complete successfully: exit code: 1
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/kca4dc8rsqpkp86y6xcbv67uu
(pseudo-entertainment) chan@gang-gamchan-ui-MacBookPro-2 Pseudo-Entertainment-Company % langgraph dockerfile -c langgraph.json agents/text/dockerfile
🔍 Validating configuration at path: /Users/chan/Pseudo-Entertainment-Company/langgraph.json
✅ Configuration validated!
📝 Generating Dockerfile at /Users/chan/Pseudo-Entertainment-Company/agents/text/dockerfile
✅ Created: Dockerfile
🎉 Files generated successfully at path /Users/chan/Pseudo-Entertainment-Company/agents/text!
(pseudo-entertainment) chan@gang-gamchan-ui-MacBookPro-2 Pseudo-Entertainment-Company % docker build -f agents/text/dockerfile -t text-agents .
[+] Building 5.9s (11/11) FINISHED docker:desktop-linux
=> [internal] load build definition from dockerfile 0.0s
=> => transferring dockerfile: 1.21kB 0.0s
=> [internal] load metadata for docker.io/langchain/langgraph-api:3.11 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 6.17kB 0.0s
=> CACHED [1/6] FROM docker.io/langchain/langgraph-api:3.11 0.0s
=> [2/6] ADD ./agents/text /deps/text 0.0s
=> [3/6] RUN PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c /api/co 3.9s
=> [4/6] RUN mkdir -p /api/langgraph_api /api/langgraph_runtime /api/langgra 0.1s
=> [5/6] RUN PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir --no-deps 1.2s
=> [6/6] RUN pip uninstall -y pip setuptools wheel && rm -rf /usr/local/ 0.6s
=> exporting to image 0.1s
=> => exporting layers 0.1s
=> => writing image sha256:588003cd55f37db9ebe0dfddb876289440375627d51edfb00 0.0s
=> => naming to docker.io/library/text-agents 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/la8z5ifvy65wrb7r421c6dpdl
What's next:
View a summary of image vulnerabilities and recommendations → docker scout quickview
(pseudo-entertainment) chan@gang-gamchan-ui-MacBookPro-2 Pseudo-Entertainment-Company % docker run --env-file .env -p 2024:2024 -p 8000:8000 text-agents
Traceback (most recent call last):
File "/usr/local/bin/uvicorn", line 8, in <module>
sys.exit(main())
^^^^^^
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1161, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1082, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1443, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 788, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 412, in main
run(
File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 579, in run
server.run()
File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 66, in run
return asyncio.run(self.serve(sockets=sockets))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "uvloop/loop.pyx", line 1518, in uvloop.loop.Loop.run_until_complete
File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 70, in serve
await self._serve(sockets)
File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 77, in _serve
config.load()
File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 435, in load
self.loaded_app = import_from_string(self.app)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string
module = importlib.import_module(module_str)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/api/langgraph_api/server.py", line 18, in <module>
File "/api/langgraph_api/api/__init__.py", line 12, in <module>
File "/api/langgraph_api/api/assistants.py", line 12, in <module>
File "/api/langgraph_api/graph.py", line 26, in <module>
File "/api/langgraph_api/config.py", line 142, in <module>
File "/usr/local/lib/python3.11/site-packages/starlette/config.py", line 90, in __call__
return self.get(key, cast, default)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/starlette/config.py", line 107, in get
raise KeyError(f"Config '{key}' is missing, and has no default.")
KeyError: "Config 'DATABASE_URI' is missing, and has no default."
(pseudo-entertainment) chan@gang-gamchan-ui-MacBookPro-2 Pseudo-Entertainment-Company % docker build -f agents/text/dockerfile -t text-agents .
[+] Building 0.0s (11/11) FINISHED docker:desktop-linux
=> [internal] load build definition from dockerfile 0.0s
=> => transferring dockerfile: 1.21kB 0.0s
=> [internal] load metadata for docker.io/langchain/lang 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 4.31kB 0.0s
=> [1/6] FROM docker.io/langchain/langgraph-api:3.11 0.0s
=> CACHED [2/6] ADD ./agents/text /deps/text 0.0s
=> CACHED [3/6] RUN PYTHONDONTWRITEBYTECODE=1 pip instal 0.0s
=> CACHED [4/6] RUN mkdir -p /api/langgraph_api /api/lan 0.0s
=> CACHED [5/6] RUN PYTHONDONTWRITEBYTECODE=1 pip instal 0.0s
=> CACHED [6/6] RUN pip uninstall -y pip setuptools whee 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:588003cd55f37db9ebe0dfddb8762 0.0s
=> => naming to docker.io/library/text-agents 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/1w68l52bm9v2i9xciakn9xoaw
What's next:
View a summary of image vulnerabilities and recommendations → docker scout quickview
(pseudo-entertainment) chan@gang-gamchan-ui-MacBookPro-2 Pseudo-Entertainment-Company % docker run --env-file .env -p 2024:2024 -p 8000:8000 text-agents
Traceback (most recent call last):
File "/usr/local/bin/uvicorn", line 8, in <module>
sys.exit(main())
^^^^^^
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1161, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1082, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1443, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 788, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 412, in main
run(
File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 579, in run
server.run()
File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 66, in run
return asyncio.run(self.serve(sockets=sockets))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "uvloop/loop.pyx", line 1518, in uvloop.loop.Loop.run_until_complete
File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 70, in serve
await self._serve(sockets)
File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 77, in _serve
config.load()
File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 435, in load
self.loaded_app = import_from_string(self.app)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string
module = importlib.import_module(module_str)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/api/langgraph_api/server.py", line 18, in <module>
File "/api/langgraph_api/api/__init__.py", line 12, in <module>
File "/api/langgraph_api/api/assistants.py", line 12, in <module>
File "/api/langgraph_api/graph.py", line 26, in <module>
File "/api/langgraph_api/config.py", line 158, in <module>
File "/usr/local/lib/python3.11/site-packages/starlette/config.py", line 90, in __call__
return self.get(key, cast, default)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/starlette/config.py", line 107, in get
raise KeyError(f"Config '{key}' is missing, and has no default.")
KeyError: "Config 'REDIS_URI' is missing, and has no default."
(pseudo-entertainment) chan@gang-gamchan-ui-MacBookPro-2 Pseudo-Entertainment-Company % docker run --env-file .env -p 2024:2024 -p 8000:8000 text-agents
2025-06-12T14:10:04.485220Z [info ] Using langgraph_runtime_postgres [langgraph_runtime] api_revision=ebc30d9 api_variant=licensed thread_name=MainThread
2025-06-12T14:10:04.500901Z [info ] Using auth of type=noop [langgraph_api.auth.middleware] api_revision=ebc30d9 api_variant=licensed thread_name=MainThread
2025-06-12T14:10:04.501637Z [info ] Started server process [1] [uvicorn.error] api_revision=ebc30d9 api_variant=licensed color_message='Started server process [\x1b[36m%d\x1b[0m]' thread_name=MainThread
2025-06-12T14:10:04.501734Z [info ] Waiting for application startup. [uvicorn.error] api_revision=ebc30d9 api_variant=licensed thread_name=MainThread
2025-06-12T14:10:04.503249Z [info ] Starting Postgres runtime with langgraph-api=0.1.3 [langgraph_runtime_postgres.lifespan] api_revision=ebc30d9 api_variant=licensed thread_name=ThreadPoolExecutor-1_0 version=0.1.3
2025-06-12T14:10:04.503412Z [warning ] No license key found, running in test mode with LangSmith API key. For production use, set LANGGRAPH_CLOUD_LICENSE_KEY in environment. [langgraph_license.validation] api_revision=ebc30d9 api_variant=licensed thread_name=MainThread
2025-06-12T14:10:04.805213Z [info ] HTTP Request: GET https://api.smith.langchain.com/auth?langgraph-api=true "HTTP/1.1 200 OK" [httpx] api_revision=ebc30d9 api_variant=licensed thread_name=MainThread
2025-06-12T14:10:04.837201Z [error ] Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 692, in lifespan
async with self.lifespan_context(app) as maybe_state:
File "/usr/local/lib/python3.11/contextlib.py", line 210, in __aenter__
return await anext(self.gen)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/langgraph_runtime_postgres/lifespan.py", line 56, in lifespan
await database.start_pool()
File "/usr/local/lib/python3.11/site-packages/langgraph_runtime_postgres/database.py", line 214, in start_pool
_pg_pool = create_pool()
^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/langgraph_runtime_postgres/database.py", line 81, in create_pool
params = conninfo_to_dict(config.DATABASE_URI)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/psycopg/conninfo.py", line 82, in conninfo_to_dict
opts = _parse_conninfo(conninfo)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/psycopg/conninfo.py", line 103, in _parse_conninfo
raise e.ProgrammingError(str(ex)) from None
psycopg.ProgrammingError: missing "=" after "sqlite:///data.db" in connection info string
[uvicorn.error] api_revision=ebc30d9 api_variant=licensed thread_name=MainThread
2025-06-12T14:10:04.837344Z [error ] Application startup failed. Exiting. [uvicorn.error] api_revision=ebc30d9 api_variant=licensed thread_name=MainThread
(pseudo-entertainment) chan@gang-gamchan-ui-MacBookPro-2 Pseudo-Entertainment-Company %
에러 설명
https://langchain-ai.github.io/langgraph/cloud/reference/cli/#dockerfile 에 설명된 내용대로 도커 이미지를 빌드하고 컨테이너 실행 시 에러가 발생합니다. 요약하자면 다음과 같습니다.
langgraph dockerfile명령어를 사용하여 빌드 시, DB 연동을 필요로 함(현재까지 PostgreSQL, Redis 연동이 필수임을 확인)해당 에러가 향후 모듈화 및 배포에 치명적이라고 생각해서 컨테이너 관리 관련 논의가 필요해보입니다.
다른 분들의 참조를 위해 전체 터미널 로그를 공유하겠습니다.