devika
devika copied to clipboard
playwright in Docker cant launch chrome
Describe the bug When the agent attempts to use the search functionality it tries to launch chrome but fails despite playwright being installed in the devika.dockerfile
devika-backend-engine-1 | 24.04.01 14:41:17: root: INFO : Search : google
devika-backend-engine-1 | Exception in thread Thread-4 (<lambda>):
devika-backend-engine-1 | Traceback (most recent call last):
devika-backend-engine-1 | File "/usr/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
devika-backend-engine-1 | self.run()
devika-backend-engine-1 | File "/usr/lib/python3.11/threading.py", line 975, in run
devika-backend-engine-1 | self._target(*self._args, **self._kwargs)
devika-backend-engine-1 | File "/home/nonroot/devika/devika.py", line 94, in <lambda>
devika-backend-engine-1 | thread = Thread(target=lambda: agent.execute(message, project_name, search_engine))
devika-backend-engine-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devika-backend-engine-1 | File "/home/nonroot/devika/src/agents/agent.py", line 336, in execute
devika-backend-engine-1 | search_results = self.search_queries(queries, project_name, engine)
devika-backend-engine-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devika-backend-engine-1 | File "/home/nonroot/devika/src/agents/agent.py", line 82, in search_queries
devika-backend-engine-1 | browser = Browser()
devika-backend-engine-1 | ^^^^^^^^^
devika-backend-engine-1 | File "/home/nonroot/devika/src/browser/browser.py", line 15, in __init__
devika-backend-engine-1 | self.browser = chromium.launch()
devika-backend-engine-1 | ^^^^^^^^^^^^^^^^^
devika-backend-engine-1 | File "/home/nonroot/devika/.venv/lib/python3.11/site-packages/playwright/sync_api/_generated.py", line 13854, in launch
devika-backend-engine-1 | self._sync(
devika-backend-engine-1 | File "/home/nonroot/devika/.venv/lib/python3.11/site-packages/playwright/_impl/_sync_base.py", line 113, in _sync
devika-backend-engine-1 | return task.result()
devika-backend-engine-1 | ^^^^^^^^^^^^^
devika-backend-engine-1 | File "/home/nonroot/devika/.venv/lib/python3.11/site-packages/playwright/_impl/_browser_type.py", line 94, in launch
devika-backend-engine-1 | Browser, from_channel(await self._channel.send("launch", params))
devika-backend-engine-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devika-backend-engine-1 | File "/home/nonroot/devika/.venv/lib/python3.11/site-packages/playwright/_impl/_connection.py", line 59, in send
devika-backend-engine-1 | return await self._connection.wrap_api_call(
devika-backend-engine-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devika-backend-engine-1 | File "/home/nonroot/devika/.venv/lib/python3.11/site-packages/playwright/_impl/_connection.py", line 509, in wrap_api_call
devika-backend-engine-1 | return await cb()
devika-backend-engine-1 | ^^^^^^^^^^
devika-backend-engine-1 | File "/home/nonroot/devika/.venv/lib/python3.11/site-packages/playwright/_impl/_connection.py", line 97, in inner_send
devika-backend-engine-1 | result = next(iter(done)).result()
devika-backend-engine-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^
devika-backend-engine-1 | playwright._impl._errors.Error: Executable doesn't exist at /home/nonroot/devika/.cache/ms-playwright/chromium-1105/chrome-linux/chrome
devika-backend-engine-1 | ╔════════════════════════════════════════════════════════════╗
devika-backend-engine-1 | ║ Looks like Playwright was just installed or updated. ║
devika-backend-engine-1 | ║ Please run the following command to download new browsers: ║
devika-backend-engine-1 | ║ ║
devika-backend-engine-1 | ║ playwright install ║
devika-backend-engine-1 | ║ ║
devika-backend-engine-1 | ║ <3 Playwright Team ║
devika-backend-engine-1 | ╚════════════════════════════════════════════════════════════╝
is playwright maybe only installed for root and not for nonroot user?
To Reproduce docker compose build docker compose up and then launch a demo project
Expected behavior expect it to perform search successfully
Desktop (please complete the following information):
- OS: Ubuntu 22 (server)
- Browser safari (client)
may be this could work
python -m venv venv source .venv/bin/activate pip install -r requirements.txt playwright install --with-deps python3 devika.py
@sounishnath003 is there no ms-playwright in /home/nonroot/devika/.cache/ in your container too?
It works if one just reinstalls the browsers without deps as user at the end of the docker file USER nonroot RUN playwright install
It works if one just reinstalls the browsers without deps as user at the end of the docker file USER nonroot RUN playwright install
It seems so obvious when somebody else figures it out. Thanks!