Короче, фан, у меня в унике есть такой предмет, как «веб». Что там должны преподавать по программе, мне неведомо, ибо варианта повлиять на это нет 🥱

И вот на этом «предмете» безопасников учили писать сервис на Django. Ну типа, а че? 🧐

Ну не суть. Заданий было всего 6, и каждое накладывалось на предыдущие. Сначала начинаем с костылей, потом один костыли меняем на улучшенные. Это база 😁

Последним заданием нужно было контейнеризировать полученный проект. С помощью любых чат-ботов или агентов эта задача решается без особых проблем.

Но мне вот стало чуточку интереснее, и в силу того, что на моей собственной инфе развернут CI/CD раннер, я решил закатать сборку и публикацию образа в конвейер.

Ох… Если бы я знал…

Т.к. я использовал собственный голый раннер, то сам же и лишил себя удобства готовых тачек от GitHub Actions. Короче говоря, вылезла куча проблем 😱

Основной проблемой был проброс Docker in Docker в раннер, т.к. по ходу сценария Docker Engine и Docker Buildx установить, конечно, можно, но вот запустить уже не получится. А т.к. мой образ собирался именно на Docker Buildx, эту проблему пришлось решать.

До кучи разобрался в том, что такое сценарии GitHub и Docker Actions. Мой опыт в Linux помог быстрее определить проблемные места, где и чего не хватает. Нейронки, конечно, тоже помогали, хотя конкретно в этой задаче больше путали, т.к. видимо знакомы с этой системой гораздо меньше.

На все про все ушло больше 4 часов и ~53 попытки запуска сценария сборки. Ох и сколько же я всего попробовал. Прям живой брутфорсер конфигураций 🗿

Ну и по итогу имеем опыт раскатки полностью независимой платформы разработки с рабочим CI/CD (конечно, не High-End платформа, но 80-90% потребностей закроет), опыт сборки образов через Docker Buildx, опыт публикации образов и опыт написания и запуска сценариев CI/CD.

Может я когда-нибудь начну пилить кастомные образы с caddy 🤔 Давно об этом думаю 🤔

Такие дела 👅

Ну а чекнуть можно здесь: https://t.me/digit4lsh4d0w\_channel/60