Week 03. Buildah (Slurm Навыкум "Build Containers!")

Buildah

Задача

Разработчики нашей команды на еженедельных "посиделках" решили, что "Docker уже не торт" и решили перейти на что-то более модное и современное

Из более-менее модного и современного они вспомнили только про Podman и Buildah (якобы и без рута там можно работать, и без демона*)

Примечание*: мы приводим доводы так, как они есть

Идеи еженедельных "посиделок" – это, конечно, круто, но для начала же надо вообще попробовать, насколько предлагаемый инструмент позволяет решать хотя бы типовые задачи

Как вы понимаете, проверить "доверили" тем, кто "шарит в контейнерах", т.е. нам (ну или вам )

Что нужно сделать

  1. Возьмите типовой веб-сервис на Go из задачи Scratch
  2. Напишите скрипт сборки Buildah (файл build.sh) для Multi-Stage сборки
  3. Напишите скрипт публикации собранного образа (файл publish.sh)
  4. Соберите и опубликуйте с помощью Buldah ваш образ
  5. Удостоверьтесь*, что образ действительно работает (и через Podman, и, самое важное, через Docker)
  6. В файле OPINION.md (репозитория) опишите 3 аргумента "ЗА" использования Buildah (если они есть, конечно же) и 3 "Против"

Важно: сборка и публикация должна быть описана в разных файлах!

Примечание*: этот пункт не обязательно выполнять в рамках GitHub Actions

Спойлеры

Спойлеры смотреть не хорошо 😈!

В репозитории Buildah, конечно же, уже есть готовые примеры (в том числе для Multi-Stage сборки)

Требования

  1. Всё должно быть оформлено в виде публичного репозитория на GitHub
  2. Вся сборка образов должна проходить через GitHub Actions
  3. Образ должен выкладываться в GitHub Container Registry (GHCR)

К текущему заданию дополнительно предъявляются требования:

  1. Buildah
  2. Multi-Stage
  3. Нельзя использовать Dockerfile