Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 12

echo password | sudo -S rm,

Решая подобную задачу, меня напрягло решение запускать Ранер с правами рута или давать ему их через sudo. Так-же возня с копированием проекта — работает пока проект мал.
Для себя выбрал использование: dind (Docker in Docker) — gitlab-ci поддерживает его.

Заметил в скрипте ci:
- script -q -c "docker e.....
для чего так сделано? именно: script -q -c?
У меня подключается через обычного пользователя, но повышение прав нужно для удаление некоторых файлов из проекта, которые появляются в процессе работы (не во всех проектах нужно sudo). Какие варианты есть если не копирование, чтобы сделать независимую папку с проектом?
Пробовал dind меня смутил как раз таки фактор запуска контейнера внутри контейнера, плюс запуск в привилегированном режиме.
script -q -c нужен для того, чтобы не было ошибки «the input device is not a TTY»
script -q -c нужен для того, чтобы не было ошибки «the input device is not a TTY»

убрать параметр -it, для ci он не нужен
НЛО прилетело и опубликовало эту надпись здесь
1. Каждая ветка по отдельности, у нас теперь фичи выходят по мере готовности, а не в 1 день кучей. Потом бывает тяжело найти причину если что-то сломается и заказчикам не надо ждать дня релиза.
2. Для этого все и делалось. Внутри нашей локальной сети админы прописали доменную зону *.test ведущий на тестовый сервер. Все контейнеры маршрутизируются через Træfik, об этом подробно написано в статье. У нас домены именуются так site512.test где 512 это номер процесса сборки в гитлабе.
3. Контейнеры останавливает сам разработчик, если фича не вышла, либо будет еще несколько выкатываний на тестовый. Так как мы используем гитлаб, то при закрытии запроса на слияние, окружение останавливается автоматически гитлабом.
НЛО прилетело и опубликовало эту надпись здесь
У нас поднят Portainer, разработчик может свободно зайти в консоль контейнера и сделать пул, либо донастроить контейнер. Для больших правок, контейнер останавливается и создается новый. Автоматом контейнеры не создаются, только запуск тестов
image
Дальше разработчик выбирает в каком окружении запускать и только в этот момент создается сайт. В гитлабе есть у проекта пункты меню Операции — Среды. Там отображается последняя развернутая версия ссылкой на нее. Этот адрес и отдается заказчику/тестировщику. Сейчас тестировщиков приучаем заходить туда самим.
image
НЛО прилетело и опубликовало эту надпись здесь
Да сколько угодно, пока ресурсов сервера хватает. У нас крутится 5-15 контейнеров с сайтами. Проблем нет.
Единственное я примерно раз в 2 недели захожу в Portainer и смотрю нет ли старых сборок, если разраб забыл сам остановить. Контролируется опять же это по номерам pipeline.
НЛО прилетело и опубликовало эту надпись здесь

Уважаемый автор, а как разработчики заходят на сайты зоны *.test? Ведь, как я понимаю, создаётся новый хостнейм (site512.test, etc). Его нужно отресолвить в IP, с которым висит traefik. Как у вас это реализовано?

У на в локальной сети развернут свой DNS сервер, в котором и прописано правило на домены *.test
Либо можно на каждую машину поставить dnsmasq, вот один из примеров
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации