Действия Github, автономный бегун: можно ли добавить параметры в docker create?
Резюме:
Действия GitHub на автономных бегунах выполняются в контейнерах докеров, которые запускаются с набором параметров, предопределенных программным обеспечением действий / бегуна. Как я могу элегантно добавить пользовательские параметры дляdocker create
а также docker run
?
Детали и объяснение
Когда я запускаю рабочий процесс действий github на автономном средстве выполнения, процесс начинается следующим образом:
- Настроить работу
- Инициализировать контейнеры
- Проверка версии докера
- Очистить ресурсы от предыдущих заданий
- Создать локальную контейнерную сеть
- Запускаем работу контейнера и ЗДЕСЬ становится интересно
Контейнер задания запускается с помощью такой команды, как я вижу в журнале:
/usr/bin/docker create --name da928aa7e61a4a44bd8e525...ea --label d36a64 --workdir /__w/xyz/xyz --network github_network_187...1631 -e "HOME=/github/home" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" etc. pp.
Теперь у меня есть несколько очень специальных тестов, которые нужно запустить как часть моей сборки CI в этом контейнере. И для этого мне нужно было бы указать дополнительные параметры для/usr/bin/docker create
так что представьте, что мне нужен какой-нибудь вариант из этого списка. Скажем--cap-add
.
Как я могу это сделать? Некоторые варианты уже приходили мне в голову:
- Я могу взломать бегунов, но они обновляются автоматически, и я не хочу делать это повторно.
- Я также могу переместить / usr / bin / docker в другое место и заменить его сценарием smart bash, изменив параметры и затем вызвав docker. Но это испортило бы docker для всех пользователей в этой системе.
Есть другие идеи?
1 ответ
Я отвечаю на свой вопрос здесь:
Параметры могут быть указаны как часть рабочего процесса yml, как описано здесь:
https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
Пример части.github / workflows / workflow.yml
(...)
container:
image: contoso.azurecr.io/bionic-custom:latest
options: --cap-add=NET_ADMIN
(...)