RAUDI (Regularly and Automatically Updated Docker Images) automatically generates and keep updated a series of Docker Images through GitHub Actions for tools that are not provided by the developers.
What is RAUDI
RAUDI is what will save you from creating and managing a lot of Docker Images manually. Every time a software is updated you need to update the Docker Image if you want to use the latest features, the dependencies are not working anymore.
This is messy and time-consuming.
Don’t worry anymore, we got you covered.
Setup
This repo can also be executed locally. The requirements to be met are the following:
- Python 3.x
- Docker
The setup phase is pretty straightforward, you just need the following commands:
git clone https://github.com/cybersecsi/RAUDI
cd RAUDI
pip install -r requirements.txt
You’re ready to go!
Usage
RAUDI can build and push all the tools that are put into the tools directory. There are different options that can be used when running it.
Execution Modes
Normal Execution
In this mode RAUDI tries to build all the tools if needed. The command to run it is simply:
./raudi.py --all
Single Build
In this mode RAUDI tries to build only the specified tool. The command in this case is:
./raudi.py --single <tool_name>
tool_name MUST be the name of the directory inside the tools folder.
Show tools
If you want to know the available tools you can run this command:
./raudi.py --list
Options
Option | Description | Default Value |
---|---|---|
–push | Whether automatically push to Docker Hub | False |
–remote | Whether check against Docker Hub instead of local Docker before build | False |
Available Tools
This is the current list of tools that have been added. Those are all tools that do not have an official Docker Image provided by the developer:
Tool Structure
Every tool in the tools directory contains at least two file:
- config.py
- Dockerfile.
- README.md (optional README for Docker Hub)
If you want to add a new tool you just have to create a folder for that specific tool inside the tools directory. In this folder you have to insert the Dockerfile with defined build args to customize and automate the build. Once you created the Dockerfile you have to create a config.py in the same directory with a function called get_config(organization, common_args). Be careful: the function MUST be called this way and MUST have those two parameters (even if you do not use them). The returning value is the config for that specific tool and has the following structure:
<div class="snippet-clipboard-content position-relative overflow-auto" data-snippet-clipboard-copy-content="config = { 'name': organization+'/’, ‘version’: ”, # Should be an helper function ‘buildargs’: { }, ‘tests’: [] }”>
config = {
'name': organization+'/<name_of_the_image>',
'version': '', # Should be an helper function
'buildargs': {
},
'tests': []
}