Короче, фан, у меня в унике есть такой предмет, как «веб». Что там должны преподавать по программе, мне неведомо, ибо варианта повлиять на это нет 🥱
И вот на этом «предмете» безопасников учили писать сервис на 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