Компания Amazon представила Finch, открытый инструментарий для сборки, публикации и запуска Linux-контейнеров. Инструментарий отличается очень простым процессом установки и использованием типовых готовых компонентов для работы с контейнерами в формате OCI (Open Container Initiative). Код Finch написан на языке Go и распространяется под лицензией Apache 2.0.
Проект пока находится на ранней стадии развития и включает лишь базовую функциональность – компания Amazon решила не завершать разработку за закрытыми дверями и чтобы не ждать готовности финального продукта опубликовала код начальной версии, полагая, что это может привлечь заинтересованных участников и позволит учесть в процессе разработки высказанные представителями сообщества мнения и идеи. Основное задачей проекта называется упрощение работы с Linux-контейнерами на хост-системах не на основе Linux.
Первый выпуск поддерживает только работу с Linux-контейнерами в окружении macOS, но в дальнейшем планируется предоставить варианты Finch для Linux и Windows.
Для построения интерфейса командной строки в Finch используются наработки nerdctl, предоставляющего совместимый с Docker набор команд для сборки, запуска, публикации и загрузки контейнеров (build, run, push, pull и т.п.), а также дополнительные опциональные возможности, такие как режим работы без root, шифрование образов, распространение образов в режиме P2P при помощи IPFS и заверение образов цифровой подписью.
В качестве runtime для управления контейнерами применяется containerd. Для сборки образов в формате OCI задействован инструментарий BuildKit, а для запуска виртуальных машин с Linux и настройки совместного доступа к файлам и перенапрпвления портов – Lima.
Finch связывает nerdctl, containerd, BuildKit и Lima в одно целое и позволяет сразу приступить к работе, без необходимости разбираться и настраивать все эти компоненты по отдельности. Для работы предлагается собственная утилита finch, которая скрывает за унифицированным интерфейсом детали работы с каждым из входящих в состав компонентом. Для начала работы достаточно установить предоставляемый пакет, который включает всё что необходимо, после чего можно сразу создавать и запускать контейнеры.