Как включить действия, отличные от докеров, для доступа к файлам, созданным докерами, в моем автономном средстве запуска действий на github? (бесконтактный докер)
Рекомендация Github запускать их бегун от имени пользователя без полномочий root вызывает некоторые проблемы, связанные с смешиванием действий докеров и не-докеров.Это довольно раздражает, потому что это приводит к тому, что действие проверки не может быть запущено, потому что оно не может получить доступ к файлам, созданным действиями, запущенными в контейнерах докеров.
Можно ли это решить, запустив бегун действий с докером без root-прав?
1 ответ
Эту проблему можно решить, запустив средство запуска действий github от имени пользователя root, что несколько снижает безопасность.
Лучшее решение - использовать докер без root:
- Удалите докер из вашей системы, если вы ранее устанавливали его через репозитории Ubuntu по умолчанию.
- установите докер из репозиториев Docker, указано какздесь (я также рекомендую включить cgroupsV2, как описано здесь ) и перезагрузитесь. Это даст вам сценарий в / usr / bin, необходимый для настройки докера без root на следующем шаге.
- настройте докер без root-доступа, как описано здесь .
- не забудьте запустить следующее, чтобы докер продолжал работать после выхода из системы (как описано в руководстве)
systemctl --user enable docker
systemctl --user start docker
sudo loginctl enable-linger $(whoami)
Также не забудьте создать контекст без root, как описано на той же странице . Это заставит ваши собственные команды докера, а средство запуска действий github автоматически будет использовать докер без root.
установите автономный бегун : https://docs.github.com/en/actions/hosting-your-own-runners/adding-self-hosted-runners (пропустите, если он уже установлен)
повторно (запустить) бегун действий. Это можно сделать, перезапустив службу systemd. Теперь ваш бегун должен работать с докером без root
Если у вас возникли проблемы с новым действием github сборки docker с использованием buildx, также см. Раздел Как устранить ошибку с помощью docker без root в действиях github самостоятельно размещенный бегун: write / proc / sys / net / ipv4 / ping_group_range: недопустимый аргумент: неизвестно