Pull to refresh

Comments 7

«Жаль, что нам так и не удалось послушать начальника транспортного цеха...»

Демо работы инструмента - удален

Записал демку будучи незалогиненным на https://asciinema.org/ и через 7 дней она пропала :)
Перезалил на залогиненный акк, так что больше не пропадёт

Ну то есть мало CI на 20 минут на серваке, тащим CI на 20 минут на локалку

В целом, контейнеризация сборки приносит два заметных торможения в сборку:

  • Запуск контейнера на каждый шаг - дополнительные +-500m в зависимости от системы

  • Как будто, процессы местами медленнее работают внутри докер-конейтнеров, которые запускает Buildkit(там он немного лайфхачит с монтированием файловой системы) - примерно на 10% работает медленнее

Это не такие драматичные тормоза, которые сильно затормозят локальную сборку.
Как будто, в случае 20 мин CI - возможно стоит оптимизировать этот процесс или локально не гонять все этапы, требуются в CI/CD, т.к. это не всегда необходимо

Идея разбивается о скалы, когда у тебя Мак на arm, а собирать надо под Интел и у тебя есть сишные зависимости.

В то время, как nix shell, все ещё работает в таком случае.

Brewkit без проблем собирает на маке на arm под интел: под капотом у Docker Buidlkit используется qemu, который запустит x86 образы докера с встроеной эмуляцией.
Будет медленно, да.
Но только в случае отсуствия нативного образа под ARM.
Если есть или пересобрать образ под arm, указать его platform-у, докер будет автоматом скачивать образ под нужную платформу и обходится без той же виртуализации. Даже в Dockerfile или brewit.jsonnet ничего указывать не нужно.

Так что Brewkit/Docker Buidlkit прекрасно собирают проекты на разных системах (из ARM под x86, из x86 под ARM) - просто есть свои нюансы и особенности :)

Это не просто медленно, это очень медленно. А ещё не дай бог какой нибудь тулзе понадобится avx, его там только через очень тяжёлую трансляцию завозят и чаще всего он в докере на маке выключен.

Так что я в свое время просто настроил кросс компиляцию.

Sign up to leave a comment.