#github-actions #github-actions-runners #github-actions-self-hosted-runners
#github-действия #github-действия-бегуны #github-actions-self-hosted-runners
Вопрос:
Нам нужно использовать автономный бегун Github action, потому что нам нужен доступ к локальному ресурсу.
Я понимаю, что мы можем запустить автономный бегун на виртуальной машине или в контейнере docker.
Можем ли мы запускать автономный раннер по требованию? Например, бегун, размещенный на Github, который всегда использует чистую изолированную виртуальную машину и уничтожается в конце выполнения задания. Или, как агенты заданий в Azure DevOps / Github, которые создали чистый контейнер агента заданий для запуска конвейера и в конце удаляются.
Можем ли мы сделать что-то подобное с автономным раннером Gihub-action? Например, разрешить нам зарегистрировать виртуальную машину в движке Docker или кластере Kubernetes в качестве автономного бегуна. Когда я запускаю рабочий процесс Github, он должен запускать контейнер и запускать рабочий процесс внутри этого контейнера. После этого он должен удалить контейнер.
Возможно ли это сделать сейчас? Я не уверен, есть ли где-нибудь документ дорожной карты для Github action.
Комментарии:
1. Оформить заказ github.com/evryfs/github-actions-runner-operator — он предоставляет бегунов в зависимости от спроса.
Ответ №1:
Если вы используете AWS, вы можете попробовать ec2-github-runner. Он делает именно то, что вы ищете.
Я полагаю, что тот же подход может быть реализован и для других облачных провайдеров.
Сам GitHub на данный момент не предоставляет таких возможностей.
Комментарии:
1. это довольно круто, и вы также можете использовать ту же концепцию для работы с контейнером Windows Docker… если вы хотите сохранить свой хост в Сети, эффективно выполняйте на нем множество заданий и экономьте кучу $$$, если у вас есть занятая очередь.
Ответ №2:
Я думаю, что вопрос немного вводит в заблуждение, но, если я правильно понимаю, вы пытаетесь добиться того, чтобы рабочий процесс GitHub Actions без состояния выполнялся в вашем автономном бегуне. К сожалению, в настоящее время это невозможно.Только раннеры, размещенные на GitHub, работают так, как вы описываете. Согласно документации:
Бегун, размещенный на GitHub, всегда является чистой изолированной виртуальной машиной, и он уничтожается в конце выполнения задания.
Вы можете прочитать больше о различиях между каждым типом раннера здесь .
Комментарии:
1. Спасибо, Марчин. Как мне улучшить свой вопрос? ДА. Вы правильно поняли. Я хочу создать новый чистый контейнер на моей автономной виртуальной машине Runner для запуска рабочего процесса. и хотите удалить его после выполнения. Я знаю, что бегун, размещенный на GitHub, делает это. Если вы посмотрите на Azure DevOps или Gitlab, раннеры представляют собой чистый контейнер, и он был уничтожен после выполнения. Я ищу способ сделать то же самое с автономным бегуном.
2. Может быть, вы хотите оформить заказ github.com/evryfs/github-actions-runner-operator ?