Главная » Docker

Кросс-компиляция проекта в Docker используя Buildx на примере сборки shadowsocks-rust и библиотеки Libgpiod

Кросс-компиляция позволяет получать исполняемый код для платформы, отличной от той, на которой запускается этот процесс. В данном случае рассмотрим кросс-компиляцию в Linux клиента shadowsocks-rust в исполнение службы Windows, соответственно для платформы Windows. Процесс сборки выполним в Docker контейнере. Инструмент Buildx позволяет задавать формат получения результата сборки контейнера, это либо контейнер, либо какие-то файлы полученные путем сборки контейнера. В текущем варианте это будут исполняемые бинарные файлы для конечных аппаратных платформ и операционных систем. Сборку библиотеки Libgpiod выполним с использованием QEMU для аппаратных платформ, таких как x86, ARM и RISC-V.

Читать далее »

Метеостанция на Banana Pi M64 (Linux, C#, Docker, RabbitMQ, AvaloniaUI)

Статей о создании метеостанции на базе Arduino не счесть. Можно сказать, если статья про метеостанцию, то это про микроконтроллеры Arduino, ESP32 или STM32. Но только не в этот раз. Будем запускать метеостанцию на Banana Pi BPI-M64 под Linux, без использования Arduino-подобных оберток в виде WiringPi, на C# .NET5. Пример метеостанции является демонстрацией встраиваемого решения работы с GPIO, датчиками и вывода пользовательского интерфейса напрямую на LCD. В решении используется: Linux (Armbian) — основная ОС, .NET и C# — платформа для создания прикладного ПО, AvaloniaUI — графической интерфейс с интерактивными графиками и анимацией, Docker — инструмент для развертывания, управления, доставки приложений, RabbitMQ — брокер сообщений для передачи сообщений между контейнерами. Благодаря использованию универсального подхода и технологии Docker, приложение можно запустить не только на Banana Pi BPI-M64, но и на других Banana/Orange/Rock/Nano Pi одноплатных компьютерах, включая Raspberry Pi.

Читать далее »

Простая установка Docker в Armbian/Linux для ARM (Raspberry/Banana/Orange/Rock/Nano Pi)

Технология разворачивания приложений в виде Docker контейнеров уже стала стандартом для Linux. Docker контейнеры особенно удобны для развертывания сложных систем в дата-центрах, корпоративных центрах обработки данных, и т.д. Docker контейнеры так же отлично подходят и для встраиваемых систем. Docker успешно работает в Armbian/Linux на armv7/arm64 устройствах Raspberry/Banana/Orange/Rock/Nano Pi, поэтому для упрощения процесса развертывания, установим Docker из готового скрипта от самой компании.

Читать далее »

Управляем контактами GPIO в Linux из Docker-контейнера библиотекой Libgpiod [обновлено 23.10.2023]

В публикации Работа с GPIO в Linux. Часть 6. Библиотека Libgpiod познакомились с библиотекой Libgpiod,  разработанной Bartosz Golaszewski. Библиотека позволяет управлять контактами GPIO одноплатного компьютера, подавать 1/0, подписываться на события (необходимо для обработки прерывания кнопки), и т.д. В отличие от множества библиотек для Raspberry Pi, Libgpiod не заточена под конкретные процессоры и работает на различных архитектурных платформах: ARMv7, ARM64, AMD64, RISC-V. Но компиляция библиотеки из исходного кода, в зависимости от дистрибутива может приводить к тем или иным сложностям и «замусоривает» систему лишними пакетами . Поэтому в дополнение и для создание Docker-контейнеров c .NET приложениями, были собраны контейнеры на базе ОС Alpine и Ubuntu содержащие библиотеку Libgpiod вместе с утилитами для управления GPIO.

Читать далее »

Сборка Docker контейнеров для ARM и RISC-V архитектуры используя Buildx [обновлено 30.09.2023]

Docker контейнер всегда собирается для той платформы, на которой выполняется сборка. Но как собрать Docker образ для другой платформы, например на платформе x86 собрать образ для ARM32, ARM64 и RISC-V архитектуры? На плате Banana Pi BPI-M64 с 64-разрядным ARM процессором собирается образ для архитектуры ARM64, ARMv8, aarch64. При сборки образов для разных архитектур приходится использовать несколько устройств, что несколько неудобно. Для решения этой задачи в состав Docker CE входит инструмент Buildx, позволяющий собирать образы для различных архитектур процессоров. В публикации будет детальный разбор, как собирать Docker образы для ARM и RISC-V процессоров с дальнейшей загрузкой в публичный Docker Hub.

Читать далее »

Установка Docker для ARM и 64-bit ARM (Armbian, Linux)

Контейнеризация приложений в Docker уже стала де-факто стандартом для систем на Linux. Многие думают что Docker технология предназначена только для серверов, больших дата-центров. Но на самом деле контейнеризация приложений для одноплатных компьютеров на ARM является отличным решением т.к. позволяет с легкостью удаленно обновлять приложение, контролировать доступные ресурсы, и обеспечивать надежность и доступность путем отката к предыдущему рабочему варианту. Публикация содержит пошаговое  руководство как установить Docker и docker-compose для одноплатных компьютеров на ARM процессоре 32-bit и 64-bit, предполагается что на компьютере установлена Armbian (Linux). В качестве платформы для установки и запуска Docker будем использовать Cubietruck (ARM32), и Banana Pi BPI-M64(ARM64), работающие на Armbian.

Читать далее »