Как установить 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. Проблема не разрешилась.


Ответы (0 шт):