Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: windows11 wsl2 docker compose up failed #3196

Open
caishanli opened this issue Sep 11, 2024 · 3 comments
Open

[Bug]: windows11 wsl2 docker compose up failed #3196

caishanli opened this issue Sep 11, 2024 · 3 comments
Labels
bug Something isn't working

Comments

@caishanli
Copy link

What happened?

docker compose up failed, only redis and web started, beat worker flower notifier backend-api start failed.

Relevant log output

test@test-pc:~/quivr$ docker compose up
WARN[0000] /home/test/quivr/docker-compose.yml: `version` is obsolete
[+] Running 7/0
 ✔ Container backend-api  Created                                                                                             0.0s
 ✔ Container redis        Created                                                                                             0.0s
 ✔ Container beat         Created                                                                                             0.0s
 ✔ Container worker       Created                                                                                             0.0s
 ✔ Container web          Created                                                                                             0.0s
 ✔ Container flower       Created                                                                                             0.0s
 ✔ Container notifier     Created                                                                                             0.0s
Attaching to backend-api, beat, flower, notifier, redis, web, worker
redis        | 1:C 11 Sep 2024 15:38:41.581 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis        | 1:C 11 Sep 2024 15:38:41.581 * Redis version=7.2.3, bits=64, commit=00000000, modified=0, pid=1, just started
redis        | 1:C 11 Sep 2024 15:38:41.581 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
redis        | 1:M 11 Sep 2024 15:38:41.581 * monotonic clock: POSIX clock_gettime
redis        | 1:M 11 Sep 2024 15:38:41.582 * Running mode=standalone, port=6379.
redis        | 1:M 11 Sep 2024 15:38:41.583 * Server initialized
redis        | 1:M 11 Sep 2024 15:38:41.583 * Loading RDB produced by version 7.2.3
redis        | 1:M 11 Sep 2024 15:38:41.583 * RDB age 1664 seconds
redis        | 1:M 11 Sep 2024 15:38:41.583 * RDB memory usage when created 0.83 Mb
redis        | 1:M 11 Sep 2024 15:38:41.583 * Done loading RDB, keys loaded: 0, keys expired: 0.
redis        | 1:M 11 Sep 2024 15:38:41.583 * DB loaded from disk: 0.000 seconds
redis        | 1:M 11 Sep 2024 15:38:41.583 * Ready to accept connections tcp
backend-api  | INFO:     Will watch for changes in these directories: ['/app']
backend-api  | INFO:     Uvicorn running on http://0.0.0.0:5050 (Press CTRL+C to quit)
backend-api  | INFO:     Started reloader process [1] using StatReload
web          |    ▲ Next.js 14.1.0
web          |    - Local:        http://localhost:3000
web          |    - Network:      http://0.0.0.0:3000
web          |
web          |  ✓ Ready in 80ms
beat         | Usage: python -m celery [OPTIONS] COMMAND [ARGS]...
beat         | Try 'python -m celery --help' for help.
beat         |
beat         | Error: Invalid value for '-A' / '--app':
beat         | Unable to load celery application.
beat         | While trying to load the module quivr_worker.celery_worker the following error occurred:
beat         | Traceback (most recent call last):
beat         |   File "/usr/local/lib/python3.11/site-packages/celery/bin/celery.py", line 58, in convert
beat         |     return find_app(value)
beat         |            ^^^^^^^^^^^^^^^
beat         |   File "/usr/local/lib/python3.11/site-packages/celery/app/utils.py", line 386, in find_app
beat         |     sym = imp(app)
beat         |           ^^^^^^^^
beat         |   File "/usr/local/lib/python3.11/site-packages/celery/utils/imports.py", line 109, in import_from_cwd
beat         |     return imp(module, package=package)
beat         |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
beat         |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
beat         |     return _bootstrap._gcd_import(name[level:], package, level)
beat         |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
beat         |   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
beat         |   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
beat         |   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
beat         |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
beat         |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
beat         |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
beat         |   File "/app/worker/quivr_worker/celery_worker.py", line 10, in <module>
beat         |     from quivr_api.models.settings import settings
beat         |   File "/app/api/quivr_api/models/settings.py", line 144, in <module>
beat         |     settings = BrainSettings()  # type: ignore
beat         |                ^^^^^^^^^^^^^^^
beat         |   File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 144, in __init__
beat         |     super().__init__(
beat         |   File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 193, in __init__
beat         |     self.__pydantic_validator__.validate_python(data, self_instance=self)
beat         | pydantic_core._pydantic_core.ValidationError: 1 validation error for BrainSettings
beat         | embedding_dim
beat         |   Field required [type=missing, input_value={'openai_api_key': 'CHANG...nternal:54322/postgres'}, input_type=dict]
beat         |     For further information visit https://errors.pydantic.dev/2.8/v/missing
beat         |
worker       | Usage: python -m celery [OPTIONS] COMMAND [ARGS]...
worker       | Try 'python -m celery --help' for help.
worker       |
worker       | Error: Invalid value for '-A' / '--app':
worker       | Unable to load celery application.
worker       | While trying to load the module quivr_worker.celery_worker the following error occurred:
worker       | Traceback (most recent call last):
worker       |   File "/usr/local/lib/python3.11/site-packages/celery/bin/celery.py", line 58, in convert
worker       |     return find_app(value)
worker       |            ^^^^^^^^^^^^^^^
worker       |   File "/usr/local/lib/python3.11/site-packages/celery/app/utils.py", line 386, in find_app
worker       |     sym = imp(app)
worker       |           ^^^^^^^^
worker       |   File "/usr/local/lib/python3.11/site-packages/celery/utils/imports.py", line 109, in import_from_cwd
worker       |     return imp(module, package=package)
worker       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker       |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
worker       |     return _bootstrap._gcd_import(name[level:], package, level)
worker       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker       |   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
worker       |   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
worker       |   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
worker       |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
worker       |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
worker       |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
worker       |   File "/app/worker/quivr_worker/celery_worker.py", line 10, in <module>
worker       |     from quivr_api.models.settings import settings
worker       |   File "/app/api/quivr_api/models/settings.py", line 144, in <module>
worker       |     settings = BrainSettings()  # type: ignore
worker       |                ^^^^^^^^^^^^^^^
worker       |   File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 144, in __init__
worker       |     super().__init__(
worker       |   File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 193, in __init__
worker       |     self.__pydantic_validator__.validate_python(data, self_instance=self)
worker       | pydantic_core._pydantic_core.ValidationError: 1 validation error for BrainSettings
worker       | embedding_dim
worker       |   Field required [type=missing, input_value={'openai_api_key': 'CHANG...nternal:54322/postgres'}, input_type=dict]
worker       |     For further information visit https://errors.pydantic.dev/2.8/v/missing
worker       |
flower       | Usage: python -m celery [OPTIONS] COMMAND [ARGS]...
flower       | Try 'python -m celery --help' for help.
flower       |
flower       | Error: Invalid value for '-A' / '--app':
flower       | Unable to load celery application.
flower       | While trying to load the module quivr_worker.celery_worker the following error occurred:
flower       | Traceback (most recent call last):
flower       |   File "/usr/local/lib/python3.11/site-packages/celery/bin/celery.py", line 58, in convert
flower       |     return find_app(value)
flower       |            ^^^^^^^^^^^^^^^
flower       |   File "/usr/local/lib/python3.11/site-packages/celery/app/utils.py", line 386, in find_app
flower       |     sym = imp(app)
flower       |           ^^^^^^^^
flower       |   File "/usr/local/lib/python3.11/site-packages/celery/utils/imports.py", line 109, in import_from_cwd
flower       |     return imp(module, package=package)
flower       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
flower       |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
flower       |     return _bootstrap._gcd_import(name[level:], package, level)
flower       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
flower       |   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
flower       |   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
flower       |   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
flower       |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
flower       |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
flower       |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
flower       |   File "/app/worker/quivr_worker/celery_worker.py", line 10, in <module>
flower       |     from quivr_api.models.settings import settings
flower       |   File "/app/api/quivr_api/models/settings.py", line 144, in <module>
flower       |     settings = BrainSettings()  # type: ignore
flower       |                ^^^^^^^^^^^^^^^
flower       |   File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 144, in __init__
flower       |     super().__init__(
flower       |   File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 193, in __init__
flower       |     self.__pydantic_validator__.validate_python(data, self_instance=self)
flower       | pydantic_core._pydantic_core.ValidationError: 1 validation error for BrainSettings
flower       | embedding_dim
flower       |   Field required [type=missing, input_value={'openai_api_key': 'CHANG...nternal:54322/postgres'}, input_type=dict]
flower       |     For further information visit https://errors.pydantic.dev/2.8/v/missing
flower       |
notifier     | Traceback (most recent call last):
notifier     |   File "/app/worker/quivr_worker/celery_monitor.py", line 11, in <module>
notifier     |     from quivr_api.modules.dependencies import async_engine
notifier     |   File "/app/api/quivr_api/modules/dependencies.py", line 22, in <module>
notifier     |     from quivr_api.models.settings import BrainSettings
notifier     |   File "/app/api/quivr_api/models/settings.py", line 144, in <module>
notifier     |     settings = BrainSettings()  # type: ignore
notifier     |                ^^^^^^^^^^^^^^^
notifier     |   File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 144, in __init__
notifier     |     super().__init__(
notifier     |   File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 193, in __init__
notifier     |     self.__pydantic_validator__.validate_python(data, self_instance=self)
notifier     | pydantic_core._pydantic_core.ValidationError: 1 validation error for BrainSettings
notifier     | embedding_dim
notifier     |   Field required [type=missing, input_value={'openai_api_key': 'CHANG...nternal:54322/postgres'}, input_type=dict]
notifier     |     For further information visit https://errors.pydantic.dev/2.8/v/missing
backend-api  | Process SpawnProcess-1:
backend-api  | Traceback (most recent call last):
backend-api  |   File "/usr/local/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
backend-api  |     self.run()
backend-api  |   File "/usr/local/lib/python3.11/multiprocessing/process.py", line 108, in run
backend-api  |     self._target(*self._args, **self._kwargs)
backend-api  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/_subprocess.py", line 80, in subprocess_started
backend-api  |     target(sockets=sockets)
backend-api  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 65, in run
backend-api  |     return asyncio.run(self.serve(sockets=sockets))
backend-api  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-api  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
backend-api  |     return runner.run(main)
backend-api  |            ^^^^^^^^^^^^^^^^
backend-api  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
backend-api  |     return self._loop.run_until_complete(task)
backend-api  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-api  |   File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
backend-api  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 69, in serve
backend-api  |     await self._serve(sockets)
backend-api  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 76, in _serve
backend-api  |     config.load()
backend-api  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 434, in load
backend-api  |     self.loaded_app = import_from_string(self.app)
backend-api  |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-api  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string
backend-api  |     module = importlib.import_module(module_str)
backend-api  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-api  |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
backend-api  |     return _bootstrap._gcd_import(name[level:], package, level)
backend-api  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-api  |   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
backend-api  |   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
backend-api  |   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
backend-api  |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
backend-api  |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
backend-api  |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
backend-api  |   File "/app/api/quivr_api/main.py", line 15, in <module>
backend-api  |     from quivr_api.modules.analytics.controller.analytics_routes import analytics_router
backend-api  |   File "/app/api/quivr_api/modules/analytics/controller/analytics_routes.py", line 4, in <module>
backend-api  |     from quivr_api.middlewares.auth.auth_bearer import AuthBearer, get_current_user
backend-api  |   File "/app/api/quivr_api/middlewares/auth/__init__.py", line 1, in <module>
backend-api  |     from .auth_bearer import AuthBearer, get_current_user
backend-api  |   File "/app/api/quivr_api/middlewares/auth/auth_bearer.py", line 10, in <module>
backend-api  |     from quivr_api.modules.api_key.service.api_key_service import ApiKeyService
backend-api  |   File "/app/api/quivr_api/modules/api_key/service/api_key_service.py", line 6, in <module>
backend-api  |     from quivr_api.modules.api_key.repository.api_keys import ApiKeys
backend-api  |   File "/app/api/quivr_api/modules/api_key/repository/api_keys.py", line 7, in <module>
backend-api  |     from quivr_api.modules.dependencies import get_supabase_client
backend-api  |   File "/app/api/quivr_api/modules/dependencies.py", line 22, in <module>
backend-api  |     from quivr_api.models.settings import BrainSettings
backend-api  |   File "/app/api/quivr_api/models/settings.py", line 144, in <module>
backend-api  |     settings = BrainSettings()  # type: ignore
backend-api  |                ^^^^^^^^^^^^^^^
backend-api  |   File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 144, in __init__
backend-api  |     super().__init__(
backend-api  |   File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 193, in __init__
backend-api  |     self.__pydantic_validator__.validate_python(data, self_instance=self)
backend-api  | pydantic_core._pydantic_core.ValidationError: 1 validation error for BrainSettings
backend-api  | embedding_dim
backend-api  |   Field required [type=missing, input_value={'openai_api_key': 'CHANG...nternal:54322/postgres'}, input_type=dict]
backend-api  |     For further information visit https://errors.pydantic.dev/2.8/v/missing
beat exited with code 0
worker exited with code 0
flower exited with code 0
notifier exited with code 0
^CGracefully stopping... (press Ctrl+C again to force)
[+] Stopping 7/7
 ✔ Container web          Stopped                                                                                             0.5s
 ✔ Container notifier     Stopped                                                                                             2.9s
 ✔ Container flower       Stopped                                                                                             2.7s
 ✔ Container backend-api  Stopped                                                                                             0.5s
 ✔ Container beat         Stopped                                                                                             4.0s
 ✔ Container worker       Stopped                                                                                             3.6s
 ✔ Container redis        Stopped                                                                                             0.5s
canceled

Twitter / LinkedIn details

No response

@caishanli caishanli added the bug Something isn't working label Sep 11, 2024
Copy link

linear bot commented Sep 11, 2024

Copy link

dosubot bot commented Sep 11, 2024

@caishanli Hello! I'm here to help you with bugs, questions, and becoming a contributor. If you need any assistance, feel free to ask.

The docker compose up command failed to start the beat, worker, flower, notifier, and backend-api containers because the embedding_dim field is missing in the environment variables. This field is required for the BrainSettings model to initialize correctly.

To resolve this issue, ensure that the embedding_dim environment variable is set. Here are the required environment variables for the BrainSettings model:

  • openai_api_key
  • azure_openai_embeddings_url
  • supabase_url
  • supabase_service_key
  • resend_api_key
  • resend_email_address
  • pg_database_url
  • pg_database_async_url
  • embedding_dim

Make sure all these variables are defined in your .env file or environment before running docker compose up again [1].

To continue talking to Dosu, mention @dosu.

@caishanli
Copy link
Author

@caishanli Hello! I'm here to help you with bugs, questions, and becoming a contributor. If you need any assistance, feel free to ask.

The docker compose up command failed to start the beat, worker, flower, notifier, and backend-api containers because the embedding_dim field is missing in the environment variables. This field is required for the BrainSettings model to initialize correctly.

To resolve this issue, ensure that the embedding_dim environment variable is set. Here are the required environment variables for the BrainSettings model:

  • openai_api_key
  • azure_openai_embeddings_url
  • supabase_url
  • supabase_service_key
  • resend_api_key
  • resend_email_address
  • pg_database_url
  • pg_database_async_url
  • embedding_dim

Make sure all these variables are defined in your .env file or environment before running docker compose up again [1].

To continue talking to Dosu, mention @dosu.

.env file is copy from .env.example with nothing changed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant