Как установить playwright внутри докер контейнера?
Подскажите пожалуйста, как я могу корректно установить playwright внутри докер контейнера для запуска браузера chromium?
Имеется образ Airflow 2.8.0+astro.1(astronomer.io, debian+airflow+postgresql).
Внутри шедулера запускаются даги, но возникла проблема с выполнением дага, где требуется дополнительный софт - playwright, chromium. Вот трейс ошибки:
Traceback (most recent call last):
File "/tmp/venv-call6pt6t6e1/script.py", line 32, in <module>
res = get_ozon_parced_prices(*arg_dict["args"], **arg_dict["kwargs"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/venv-call6pt6t6e1/script.py", line 28, in get_ozon_parced_prices
values = OzonTables().parced_prices(list_ids=list_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/airflow/src/transform/table_convertion.py", line 236, in parced_prices
get_ozon_parced_self_prices(list_ids=kwargs.get('list_ids')))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/airflow/src/parcers/ozon.py", line 123, in get_ozon_parced_self_prices
browser = playwright.chromium.launch(headless=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/airflow/venv_main/lib/python3.11/site-packages/playwright/sync_api/_generated.py", line 14806, in launch
self._sync(
File "/usr/local/airflow/venv_main/lib/python3.11/site-packages/playwright/_impl/_sync_base.py", line 115, in _sync
return task.result()
^^^^^^^^^^^^^
File "/usr/local/airflow/venv_main/lib/python3.11/site-packages/playwright/_impl/_browser_type.py", line 95, in launch
Browser, from_channel(await self._channel.send("launch", params))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/airflow/venv_main/lib/python3.11/site-packages/playwright/_impl/_connection.py", line 62, in send
return await self._connection.wrap_api_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/airflow/venv_main/lib/python3.11/site-packages/playwright/_impl/_connection.py", line 492, in wrap_api_call
return await cb()
^^^^^^^^^^
File "/usr/local/airflow/venv_main/lib/python3.11/site-packages/playwright/_impl/_connection.py", line 100, in inner_send
result = next(iter(done)).result()
^^^^^^^^^^^^^^^^^^^^^^^^^
playwright._impl._errors.Error: Executable doesn't exist at /home/astro/.cache/ms-playwright/chromium-1091/chrome-linux/chrome
╔════════════════════════════════════════════════════════════╗
║ Looks like Playwright was just installed or updated. ║
║ Please run the following command to download new browsers: ║
║ ║
║ playwright install ║
║ ║
║ <3 Playwright Team ║
╚════════════════════════════════════════════════════════════╝
Task failed with exception
Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/airflow/models/taskinstance.py", line 433, in _execute_task
result = execute_callable(context=context, **execute_callable_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/airflow/decorators/base.py", line 242, in execute
return_value = super().execute(context)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/airflow/operators/python.py", line 400, in execute
return super().execute(context=serializable_context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/airflow/operators/python.py", line 199, in execute
return_value = self.execute_callable()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/airflow/operators/python.py", line 851, in execute_callable
return self._execute_python_callable_in_subprocess(python_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/airflow/operators/python.py", line 471, in _execute_python_callable_in_subprocess
raise AirflowException(error_msg) from None
airflow.exceptions.AirflowException: Process returned non-zero exit status 1.
Executable doesn't exist at /home/astro/.cache/ms-playwright/chromium-1091/chrome-linux/chrome
╔════════════════════════════════════════════════════════════╗
║ Looks like Playwright was just installed or updated. ║
║ Please run the following command to download new browsers: ║
║ ║
║ playwright install ║
║ ║
║ <3 Playwright Team ║
╚════════════════════════════════════════════════════════════╝
Я устанавливал Playwright в каждом контейнере, так же устанавливал через astro CLI. Пробовал так же и через Dev container внутри VS Code. Проблема не разрешилась.