Развертывание инструментария кросс-компиляции в Docker

Работа над набором инструментов для кросс-компиляции (для архитектуры riscv) с использованием проекта генератора Rocket-Chip. Это имеет много зависимостей, я разработал все на машине Ubuntu 16.04 LTS. И я хотел бы развернуть это на других машинах, на которых установлен старый дистрибутив Linux Debian (Linux 3.2).

Поскольку у меня было много проблем с зависимостями, я не мог правильно запускать свои тесты на машинах.

Пробовал виртуальную машину, работал, но производительность не была достаточно справедливой.

Мой вопрос заключается в том, существуют ли какие-либо другие методы для самостоятельного размещения набора инструментов с его источниками и зависимостями? Я слышал о Docker, и это используется для этого, но мне интересно, может ли это быть полезным в моем случае?

Любые идеи или направления приветствуются! Спасибо, С наилучшими пожеланиями.

1 ответ

Да, это один из сценариев докера.

Как вы уже упоминали, это инструмент для кросс-сборки. Таким образом, вы можете поместить свой исходный код для сборки на хосте, например /my_source_code_folder_host, а затем использовать следующую команду для сборки исходного кода.

docker run --rm -v /my_source_code_folder_host:/my_source_code_folder_container your_build_container_image

За your_build_container_imageнужно установить CMD или же ENTRYPOINT в dockerfile, и значение должно быть встроенной командой вашего набора инструментов, и по умолчанию он собирает исходный код в my_source_code_folder_containerвыход будет также в my_source_code_folder_container,

Как my_source_code_folder_container настроен как том докера из папки my_source_code_folder_host в хост-машине, поэтому вывод также будет виден в хосте.

В настоящее время это решение широко используется в команде CI некоторых полупроводниковых компаний для ежедневной кросс-компиляции.

Другие вопросы по тегам