В данной статье рассматривается программное обеспечение Docker, демонстрируется использование контейнеров для сборки Android-приложений
Ключевые слова: Android, приложение, Docker, контейнер, сборка, Gradle, программное обеспечение
Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации. Docker позволяет создавать контейнеры, которые содержат минимальное ядро ОС и необходимый набор ПО. Данные контейнеры могут быть развернуты на любом устройстве без изменения окружения.
Основным инструментом для сборки Android-приложений является система автоматической сборки Gradle, построенная на принципах Apache Ant и Apache Maven
Главным достоинством сборки Android-приложений в Docker контейнере является то, что при необходимости сборки приложения на другом устройстве нет необходимости в установке всего ПО, достаточно скачать необходимый образ.
Все инструкции для создания образа содержаться в Dockerfile. На рис.1 представлен Dockerfile, используемый для создания образа контейнера, в котором будет производиться сборка Android-приложения.
Рис. 1. Содержимое Dockerfile
В строке 1 указывается базовый образ контейнера. В данном случае используется официальный образ Gradle.
В строках 3–7 задаются переменные с папкой для Android SDK и версиями SDK и SDK Build tools.
В строках 8–12 создается директория для установки SDK, скачивается архив с SDK необходимой версии, распаковывается и затем удаляется.
В строках 13–15 создается папка и файлы с лицензиями. Исходя из официальной документации Android, данные файлы нельзя сгенерировать автоматически, поэтому необходимо скопировать их с устройства, на котором данные лицензии уже подтверждены.
В последующих строках запускается обновление SDK, установка SDK build tools и platform tools.
Сборка образа контейнера осуществляется при помощи команды: “ docker build -t <название образа>.”. Результат сборки данного образа показан на рис. 2.
Рис.2 Сборка Docker образа
Для запуска контейнера используется следующая команда: “ docker run --rm -v <директория проекта>:/home/gradle/ -w /home/gradle <название образа> <команда, которая будет выполнятся в контейнере>”. Для сборки проекта используется команда gradle assembleDebug (пример выполнения команды показан на рис. 3) , но аналогичным образом можно выполнять другие задачи Gradle.
Рис. 3. Пример сборки Android-приложения в контейнере
В данной статье было описано использование Docker контейнера для сборки Android-приложения. Данный способ будет полезен для использования на CI/CD серверах. Помимо функционала, использованного в статье, Docker предлагает разработчику большое количество возможностей. При помощи Docker можно значительно упростить разработку и поддержку ПО, в том числе и Android-приложений.
Литература:
1. Эдриен, Моуэт Использование Docker. Разработка и внедрение программного обеспечения при помощи технологии контейнеров. Руководство / Моуэт Эдриен. — М.: ДМК Пресс, 2017. — 427 c.
2. Turnbull J. The Docker Book. James Turnbull, 2014, p. 338.
3. Сборка Android-проекта в Docker-контейнере [Электронный ресурс]// URL https://habr.com/ru/post/465193/