GitHub Actions: Docker Compose замість сервісів
Помітив ненароком, що у збірці цілих 2 з половиною хвилини займає запуск сервісів. Це, якщо не стикався, всілякі бази даних та інші залежності, які є просто контейнерами Docker, чого ніхто й не приховує.
Втім, при уважному роздивлянні виявилось, що сервіси запускаються чомусь послідовно. Хоча я звик, що Docker Compose запускає їх паралельно. Про це навіть є запит, який, чомусь мені здається, навряд чи буде виконаний, але то інша тема.
Вихід, відповідно, очевидний — замінити сервіси на Docker Compose. Кумедно, що весь блок конфігурації services
буквально копіюється у docker-compose.yml
практично без змін. Потім на початку збірки (другим кроком після checkout
) запускаємо docker compose up --detach
та бачимо запуск вже за 45 секунд. Ось так, майже без зусиль, півтори хвилини заощаджено з кожної збірки.
Різниці у використанні немає — сервіси так само будуть доступні за тими ж портами, які були налаштовані раніше. Хіба що єдиний недолік — журнал контейнерів з сервісами ми просто так не побачимо. Хоча якщо він прямо потрібний, можна ж забрати з Docker без проблем.
Окреме питання — це величезні образи залежностей, які доводиться тягнути, а саме - OpenSearch, який важить майже гігабайт. Та й запускається він повільніше за всіх. Такий він, Web Scale!
PS. Самому хочеться щось вже позбавитись тих Actions разом із GitHub, але ж для роботи він точно ще довго залишиться.