
Репозиторий для автоматической генерации и поддержания актуальности серии Docker-образов через GitHub Actions.
RAUDI (Regularly and Automatically Updated Docker Images) автоматически генерирует и поддерживает актуальную серию Docker-образов через GitHub Actions для инструментов, которые не предоставляются разработчиками.
RAUDI — это то, что спасёт вас от необходимости вручную создавать и поддерживать множество Docker-образов. Каждый раз, когда обновляется программное обеспечение, вам нужно обновлять Docker-образ, если вы хотите использовать последние возможности; зависимости перестают работать.
Это грязно и отнимает много времени.
Больше не беспокойтесь, мы всё сделаем за вас.
Вы можете либо форкнуть этот репозиторий и использовать GitHub Workflow самостоятельно, либо использовать его локально (и управлять его выполнением так, как вам удобно).
Если вы хотите форкнуть этот репозиторий, вам также необходимо настроить некоторые секреты, чтобы иметь возможность отправлять образы в свой личный аккаунт Docker Hub. Два секрета GitHub обязательно должны быть установлены:
После установки этих секретов вам нужно изменить переменную organization, заданную в файле tools/main.py, так как она настроена на отправку в Docker Hub для SecSI.
Вот и всё: перейдите в Action, включите его для вашего форкнутого репозитория, подождите до полуночи, и Workflow сделает всю тяжёлую работу!
Этот репозиторий также можно запускать локально. Необходимо выполнить следующие требования:
Вот документация по работе с BuildX: https://docs.docker.com/buildx/working-with-buildx/
Этап настройки довольно прост, вам нужно выполнить следующие команды:
git clone https://github.com/cybersecsi/RAUDI
cd RAUDI
pip install -r requirements.txt
Вы готовы к работе!
Для запуска тестов необходимо установить pytest командой pip install pytest (его нет в requirements.txt, так как он нужен только для тестирования), после чего вы можете выполнить:
pytest -s
или
python -m pytest -s
для запуска тестов.
RAUDI может собирать и отправлять все инструменты, помещённые в каталог tools. При запуске доступны различные опции. Перед локальным использованием вы должны создать файл .env (можно просто скопировать файл .env.sample) и добавить свой GitHub Personal Access Token, чтобы избежать ограничения скорости. Для неавторизованных пользователей GitHub разрешает до 60 запросов в час, а для авторизованных — до 15 000 запросов в час. По этой причине мы рекомендуем добавить его! Вы также можете создать персональный токен доступа без каких-либо областей, так как мы только читаем некоторую информацию для каждого репозитория GitHub.
В этом режиме RAUDI пытается собрать все инструменты, если это необходимо. Команда для запуска:
python3 ./raudi.py --all
В этом режиме RAUDI пытается собрать только указанный инструмент. Команда в этом случае:
python3 ./raudi.py --single <имя_инструмента>
имя_инструмента ДОЛЖНО быть именем каталога внутри папки tools.
Поскольку в структуру конфигурации инструмента был добавлен параметр tests, это может быть полезно для проверки того, возвращают ли вставленные команды код состояния 0. Команда для тестирования конкретного инструмента:
python3 ./raudi.py --test <имя_инструмента>
имя_инструмента ДОЛЖНО быть именем каталога внутри папки tools.
Если вы хотите узнать доступные инструменты, выполните эту команду:
python3 ./raudi.py --list
Если вы хотите быстро добавить папку нового инструмента, используя один из доступных шаблонов, выполните эту команду:
python3 ./raudi.py --bootstrap <имя_нового_инструмента>
| Опция | Описание | Значение по умолчанию |
|---|---|---|
| --push | Автоматически отправлять на Docker Hub | False |
| --remote | Проверять на Docker Hub вместо локального Docker перед сборкой | False |
| --force | Собирать, даже если найден образ с таким же именем тега | False |
Это текущий список добавленных инструментов. Все это инструменты, для которых нет официального Docker-образа от разработчика: