Как включить действия, отличные от докеров, для доступа к файлам, созданным докерами, в моем автономном средстве запуска действий на github? (бесконтактный докер)

Рекомендация Github запускать их бегун от имени пользователя без полномочий root вызывает некоторые проблемы, связанные с смешиванием действий докеров и не-докеров.Это довольно раздражает, потому что это приводит к тому, что действие проверки не может быть запущено, потому что оно не может получить доступ к файлам, созданным действиями, запущенными в контейнерах докеров.

Можно ли это решить, запустив бегун действий с докером без root-прав?

1 ответ

Решение

Эту проблему можно решить, запустив средство запуска действий github от имени пользователя root, что несколько снижает безопасность.

Лучшее решение - использовать докер без root:

  1. Удалите докер из вашей системы, если вы ранее устанавливали его через репозитории Ubuntu по умолчанию.
  2. установите докер из репозиториев Docker, указано какздесь (я также рекомендую включить cgroupsV2, как описано здесь ) и перезагрузитесь. Это даст вам сценарий в / usr / bin, необходимый для настройки докера без root на следующем шаге.
  3. настройте докер без root-доступа, как описано здесь .
  4. не забудьте запустить следующее, чтобы докер продолжал работать после выхода из системы (как описано в руководстве)
      systemctl --user enable docker
systemctl --user start docker
sudo loginctl enable-linger $(whoami)
  1. Также не забудьте создать контекст без root, как описано на той же странице . Это заставит ваши собственные команды докера, а средство запуска действий github автоматически будет использовать докер без root.

  2. установите автономный бегун : https://docs.github.com/en/actions/hosting-your-own-runners/adding-self-hosted-runners (пропустите, если он уже установлен)

  3. повторно (запустить) бегун действий. Это можно сделать, перезапустив службу systemd. Теперь ваш бегун должен работать с докером без root

Если у вас возникли проблемы с новым действием github сборки docker с использованием buildx, также см. Раздел Как устранить ошибку с помощью docker без root в действиях github самостоятельно размещенный бегун: write / proc / sys / net / ipv4 / ping_group_range: недопустимый аргумент: неизвестно

Другие вопросы по тегам