🐳 RAUDI: Regularly and Automatically Updated Docker Images


🐳 RAUDI: Regularly and Automatically Updated Docker Images

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.

Documentation License: GPL v3

Table of Contents

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.

You may either fork this repo and use the GitHub Workflow yourself or use it locally (and manage its execution the way you want).


If you want to fork this repo you also have to set up some secrets to be able to push your images on your personal Docker Hub account. Two GitHub secrets must be set:

  • DOCKER_USER: Your Docker Hub Username;
  • DOCKER_API_TOKEN: Your Docker Hub Password or API Token.

After setting those secrets you have to edit the organization variable set in the tools/main.py file since it is configured to push on the Docker Hub for SecSI.

That's all guys: go to Action, enable it for your forked repo, wait until midnight, and the Workflow will do the heavy work!


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
pip install -r requirements.txt

You're ready to go!

Local 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:

python3 ./raudi.py --all

Single Build

In this mode RAUDI tries to build only the specified tool. The command in this case is:

python3 ./raudi.py --single 


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:

python3 ./raudi.py --list

Bootstrap tool

If you want to quickly add a new tool folder starting from one of the available templates you can run this command:

python3 ./raudi.py --bootstrap 



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
--force Whether build or not if an image with the same tagname has been found 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:

Name Docker Image Source
Apktool secsi/apktool https://github.com/iBotPeaches/Apktool
bfac secsi/bfac https://github.com/mazen160/bfac
dirb secsi/dirb http://dirb.sourceforge.net/
dirhunt secsi/dirhunt https://github.com/Nekmo/dirhunt
dirsearch secsi/dirsearch https://github.com/maurosoria/dirsearch
dnscan secsi/dnscan https://github.com/rbsec/dnscan
Dorks Eye secsi/dorks-eye https://github.com/rbsec/dnscan
EyeWitness secsi/eyewitness https://github.com/FortyNorthSecurity/EyeWitness
ffuf secsi/ffuf https://github.com/ffuf/ffuf
fierce secsi/fierce https://github.com/mschwager/fierce
Findsploit secsi/findsploit https://github.com/1N3/Findsploit
Gitrob secsi/gitrob https://github.com/michenriksen/gitrob
GitTools secsi/gittools https://github.com/internetwache/GitTool
gobuster secsi/gobuster https://github.com/OJ/gobuster
GoogD0rker secsi/googd0rker https://github.com/ZephrFish/GoogD0rker
hydra secsi/hydra https://github.com/vanhauser-thc/thc-hydra
impacket secsi/impacket https://github.com/SecureAuthCorp/impacket
The JSON Web Token Toolkit secsi/jwt_tool https://github.com/ticarpi/jwt_tool
knock secsi/knockpy https://github.com/guelfoweb/knock
LFI Suite secsi/lfisuite https://github.com/D35m0nd142/LFISuite
MASSCAN secsi/masscan https://github.com/robertdavidgraham/masscan
MassDNS secsi/massdns https://github.com/blechschmidt/massdns
nikto secsi/nikto https://github.com/sullo/nikto
nmap secsi/nmap https://github.com/nmap/nmap
pureDNS secsi/puredns https://github.com/d3mondev/puredns
Race The Web secsi/race-the-web https://github.com/TheHackerDev/race-the-web
RestfulHarvest secsi/restfulharvest https://github.com/laramies/theHarvester
Retire.js secsi/retire https://github.com/RetireJS/retire.js
Sandcastle secsi/sandcastle https://github.com/0xSearches/sandcastle
sqlmap secsi/sqlmap https://github.com/sqlmapproject/sqlmap
Sublist3r secsi/sublist3r https://github.com/aboul3la/Sublist3r
theHarvester secsi/theharvester https://github.com/laramies/theHarvester
vim secsi/vim https://github.com/vim/vim
waybackpy secsi/waybackpy https://github.com/akamhy/waybackpy
WhatWeb secsi/whatweb https://github.com/urbanadventurer/WhatWeb

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:

config =  {
    'name': organization+'/
    'version': '', # Should be an helper function
    'buildargs': {
    'tests': []


The four keys are:

  • name: the name of the Docker Image (e.g. secsi/ );
  • version: the version number of the Docker Image. For this you may use a helper function that is able to retrieve the latest available version number (look at tools/ffuf for an example);
  • buildargs: a dict to specify the parts of the Docker Images that are subject to updates (again: look at tools/ffuf for an example);
  • tests: an array of tests (usually just a simple one like '--help').

After doing so you are good to go! Just be careful that the name of the tool MUST BE THE SAME as the directory in which you placed its Dockerfile.

There is a NAMING CONVENTION for the versions: use only DOTS and DIGITS; so please remove any trailing 'v' from the version in the specific config.py (for a working example check tools/dirsearch/config.py).


To get the latest versions and information about tools and base images a set of helpers has been implemented. If you want to add a new tool you should use these helpers to have a Docker Image that is automatically updated by RAUDI.


This helper is used to retrieve the latest version of a pip package. All it takes is the name of the package and returns the version number. Example:

VERSION = helper.get_latest_pip_version(package_name)


This helper is used to retrieve the latest version of a npm package. All it takes is the name of the package and returns the version number. Example:

VERSION = helper.get_latest_npm_registry_version(package_name)


This helper is used to retrieve information about a GitHub repo that uses Releases and has multiple kind of assets (e.g. executables for different OSes). This helper takes the repo (in the format user/repo) and a target string to be able to identify the correct asset to download. It returns a dict with two keys (url and version). Example:

VERSION = helper.get_latest_github_release("user/repo", "linux_amd64")


This helper is used to retrieve information about a GitHub repo that uses Releases and has only the source code (which means there is a zipball and a tarball). This helper takes the repo (in the format user/repo) and returns a dict with two keys (url and version). Example:

VERSION = helper.get_latest_github_release_no_browser_download("user/repo")


This helper is used to retrieve information about a GitHub repo that uses Tags and has only the source code (which means there is a zipball and a tarball). This helper takes the repo (in the format user/repo) and returns a dict with two keys (url and version). Example:

VERSION = helper.get_latest_github_tag_no_browser_download("user/repo")


This helper is used to retrieve information about a GitHub repo that doesn't use Tags or Releases. In this case, the goal is to retrieve the latest commit. This helper takes the repo (in the format user/repo) and returns a string representing the date of the last commit in the format YYYYYMMDD.

VERSION = helper.get_latest_github_commit("user/repo")


This section provides examples for the currently added Network Security Tools. As you can see the images do provide only the tool, so if you need to use a wordlist you need to mount it.

Generic Example

docker run -it --rm secsi/


Specific example

docker run -it --rm -v 


Everyone is invited to contribute! If you are a user of the tool and have a suggestion for a new feature or a bug to report, please do so through the issue tracker.


RAUDI is proudly developed @SecSI by:


RAUDI is an open-source and free software released under the GNU GPL v3.

  • Add new tool - Subzy

    Add new tool - Subzy

    Changes proposed in this pull request

    I've added a new tool, Subzy. Subzy is similar to an existing tool - Subjack. However, it is updated more frequently. For e.g. the fingerprints.json for Subzy were updated 7 months ago vs. 17 months ago for Subjack.

    Regarding the config.py - I elected to employ get_latest_github_commit() since Subzy does not have a release nor any tags.

    I have also updated RAUDI/README.md to include Subzy in the list of tools.


    opened by frost19k 2
  • If buildx is not configured, RAUDI fails

    If buildx is not configured, RAUDI fails

    Describe the bug

    If you try to run RAUDI on a machine that has not configured buildx, the build fails. It is not relevant as we are focused on building the images, but it would be useful to add this information in README documentation in a clear way, as it could discourage people to contribute.

    To Reproduce

    • Install docker without configuring buildx
    • run python raudi.py --sinigle <nameimage>
    • Look at the errors:

    Expected behavior Add in the README file that buildx should be installed before contributing to the project.

    opened by giper45 2
  • Add

    Add "dev" branch for experimental features


    I have ported raudi.py to python_on_whales.

    This allows for Buildkit builds - enabling much more complex Dockerfiles.

    However, I feel it would be better to make a PR to a dev branch - in case something is not working correctly.


    opened by frost19k 2
  • spidy image does not have a test case to push automatically through github actions

    spidy image does not have a test case to push automatically through github actions

    Describe the bug The spidy image has a crawler.py script that does not support a "help" section. This is required to RAUDI as it checks the container exit before pushing.
    Expected behavior
    The image should support the help flag.

    We should remove the spidy image or think about another approach. For example, change spidy image with a generic python command and adds in the documentation the guide about running by adding crawler.py as first argument.

    opened by giper45 1
  • [Feature request] add netifyd

    [Feature request] add netifyd

    Starting from https://github.com/cybersecsi/RAUDI/issues/1#issuecomment-1018382954

    An example dockerfile that uses prebuilt package

    FROM ubuntu:xenial
    RUN apt update && apt -y  install curl gnupg
    RUN curl http://download.netify.ai/netify/ubuntu/apt-gpg-key-netify.asc -o Netify.gpg
    RUN apt-key add - < Netify.gpg
    RUN echo 'deb http://download.netify.ai/netify/ubuntu/xenial/ /' > /tmp/netify.list
    RUN mv /tmp/netify.list /etc/apt/sources.list.d/netify.list
    RUN apt update && apt -y install netifyd
    ENTRYPOINT "netifyd"

    maybe some wrapper is needed for the entrypoint

    opened by FrancYescO 1
  • [BUG] Unable to push images from GitHub Workflow

    [BUG] Unable to push images from GitHub Workflow

    Describe the bug

    RAUDI works locally but the Workflow on GitHub fails to push images to Docker Hub.

    To Reproduce

    Simply run the workflow from the Actions tab on GitHub.

    Expected behavior

    RAUDI should build and update tools that have been updated.



    Additional context

    Looking above on the code I found the following: image

    Possible solutions

    Try execute the docker.buildx.build function with the push parameter set to True. If it doesn't work either try adding a Builder using the docker-container driver.

    opened by thelicato 1
  • Port Raudi to python_on_whales

    Port Raudi to python_on_whales

    This PR replaces the docker-py library with python_on_whales.


    • docker-py does not (and possibly, will not) support Buildkit. Issue #2230
    • Not having access to BuildKit means that raudi.py is restricted to using only the simplest Dockerfiles.
    • For full details regarding the advatages of BuildKit please refer to the blog post.
    • Additionally, since python_on_whales is essentially a wrapper around Docker CLI, it is a lot simpler to implement & maintain ( for e.g. check_if_docker_image_exists_local() in helper.py is now just one line! )


    • I've updated build() & push() in raudi.py with the new syntax. I've tested the build() function & confirmed that it works correctly (see #20) - but I have not tested push().
    • In helper.py I updated the code in check_if_docker_image_exists_local() & check_if_container_runs(). Please mind my comments in the latter.
    • While I added python_on_whales in requirements.txt I did not remove docker. This is merely to facilitate debugging & it should be removed before merging into main.

    As far as I'm aware - that should be everything. Apologies if I missed something.

    opened by frost19k 1
  • Templates definition

    Templates definition

    Define a series of templates to use within the --bootrap command, for example:

    • [x] Alpine
    • [x] Python
    • [x] Python2
    • [x] Debian
    • [x] Node
    • [x] Ruby
    • [x] Java
    • [x] Go
    opened by thelicato 1
  • Fix regex for github tags

    Fix regex for github tags

    GitHub tags generally begin with a 'v' - however the current regex (line 83) looks for a digit in the first character. This causes data (on line 90) to be assigned as an empty list.

    The change also requires a modification to the input for the sorting algorithm on line 33. Note: stripping 'v' does nothing if 'v' doesn't exist in the input string.

    opened by frost19k 1
  • Add helper to update Docker Image based on commits

    Add helper to update Docker Image based on commits

    Add a helper function to update Docker Images based on commits for the projects that do not have neither releases nor tags or for projects that are not updated often. For this helper the tagname can be the date of the commit in the format 'YYYYMMDD'. The fact that there could be multiple commits on the same day is not a problem since RAUDI is executed only once a day (at midnight). Problems could arise only on manual executions of the Workflow and should be fixed manually on the Docker Hub.

    opened by thelicato 1
  • Add clean_version helper function

    Add clean_version helper function

    Issue fixed

    This pull request fixes issue #3

    Changes proposed in this pull request

    Add a new helper function called clean_version that takes a version and cleans it into the format RAUDI expects (only digits and dots). The function has been added to the templates and to every other existing tool.

    opened by thelicato 0
  • Improve helper functions by implementing checks

    Improve helper functions by implementing checks

    Check for invalid input in helper functions could help to check for errors in RAUDI.

    Describe the solution you'd like Implement a suite of test cases for helper modules to check for invalid return code operations.

    opened by giper45 0
  • Module not found error if config does not exist in tools folder

    Module not found error if config does not exist in tools folder

    When list_tools() is performed, RAUDI does not check if a config.py exist inside the tools/. It gives an exception taht should be managed:

    Steps to reproduce the behavior.

    • Create a new folder in tools without config.py.
    • Run raudi --list

    Expected behavior
    Raudi should show an error message if config.py or Dockerfile does not exist.

    A clear and concise description of what you expected to happen.

    Possible solutions Check for the existence of config.py and Dockerfile in a check_tools function when list and build_all methods are called. It would be useful to implement a test suite to manage and track these fail conditions.

    opened by giper45 0
  • Multi-dependency Docker Image

    Multi-dependency Docker Image

    Since there are multiple tools that can depend on other there may be the need to update the Docker Image also when one of the dependencies get updated. The solution is to add a new boolean parameter in the config.py called "build_always" that behaves in this way:

    • If "build_always" is True the image is built anyway (even if the version on Docker Hub is the same)
    • If the --push option is specified and there is already a version with the same tag nameon Docker Hub then the digest of the newly build image is checked against the digest of the image on Docker Hub. If they are different the new image is pushed on Docker Hub keeping the same tag version.

    In this way it is possible to have a multi-dependency Docker Image.

    enhancement help wanted 
    opened by thelicato 1
  • Automatic Common Args

    Automatic Common Args

    Set a helper function called check_and_fill_args that parses the Dockerfile and automatically fills the common_args in the buildargs. This function should also raise an error if some argument is missing.

    opened by thelicato 0
  • Add Tools

    Add Tools

    Here is a list of Tools that should be checked for a possible integration in RAUDI.

    Releases available

    • [x] Knockpy https://github.com/guelfoweb/knock
    • [x] Sublist3r https://github.com/aboul3la/Sublist3r
    • [x] massdns https://github.com/blechschmidt/massdns
    • [x] waybackpy https://github.com/akamhy/waybackpy
    • [x] dirsearch https://github.com/maurosoria/dirsearch
    • [x] Gitrob https://github.com/michenriksen/gitrob
    • [x] masscan https://github.com/robertdavidgraham/masscan
    • [x] hydra https://github.com/vanhauser-thc/thc-hydra
    • [x] Apktool https://github.com/iBotPeaches/Apktool
    • [x] sqlmap https://github.com/sqlmapproject/sqlmap
    • [x] The JSON Web Token Toolkit https://github.com/ticarpi/jwt_tool
    • [x] LFISuite https://github.com/D35m0nd142/LFISuite
    • [x] Race the Web https://github.com/TheHackerDev/race-the-web
    • [x] retire-js https://github.com/RetireJS/retire.js
    • [x] Findsploit https://github.com/1N3/Findsploit
    • [x] bfac https://github.com/mazen160/bfac
    • [x] theHarverster https://github.com/laramies/theHarvester
    • [x] EyeWitness https://github.com/ChrisTruncer/EyeWitness
    • [x] GitTools https://github.com/internetwache/GitTools
    • [x] datasploit https://github.com/DataSploit/datasploit
    • [x] ~~getsploit https://github.com/vulnersCom/getsploit~~
    • [x] dex2jar https://github.com/pxb1988/dex2jar
    • [x] subfinder https://github.com/projectdiscovery/subfinder
    • [ ] SpiderFoot https://github.com/smicallef/spiderfoot
    • [x] subjack https://github.com/haccer/subjack
    • [x] Hakrawler https://github.com/hakluke/hakrawler
    • [x] Photon https://github.com/s0md3v/Photon
    • [x] GoSpider https://github.com/jaeles-project/gospider
    • [x] WAFW00F https://github.com/EnableSecurity/wafw00f
    • [x] Arjun https://github.com/s0md3v/Arjun
    • [ ] clair https://github.com/quay/clair

    Tags available

    • [x] fierce https://github.com/mschwager/fierce
    • [x] sandcastle https://github.com/0xSearches/sandcastle
    • [x] ~~git-secrets https://github.com/awslabs/git-secrets~~
    • [x] dvcs-ripper https://github.com/kost/dvcs-ripper
    • [x] httprobe https://github.com/tomnomnom/httprobe
    • [ ] Striker https://github.com/s0md3v/Striker

    No releases, no tags

    • [x] dnscan https://github.com/rbsec/dnscan
    • [x] nmap https://github.com/nmap/nmap
    • [x] DirBuster https://sourceforge.net/projects/dirbuster/
    • [x] GoogD0rker https://github.com/ZephrFish/GoogD0rker/
    • [x] ~~XRay https://github.com/evilsocket/xray~~
    • [x] oxml_xxe https://github.com/BuffaloWill/oxml_xxe/
    • [x] XXE Injector https://github.com/enjoiz/XXEinjector
    • [x] ground-control https://github.com/jobertabma/ground-control
    • [ ] ssrfDetector https://github.com/JacobReynolds/ssrfDetector
    • [ ] tko-subs https://github.com/anshumanbh/tko-subs
    • [ ] HostileSubBruteforcer https://github.com/nahamsec/HostileSubBruteforcer
    • [ ] PHPGGC https://github.com/ambionics/phpggc
    • [ ] CORStest https://github.com/RUB-NDS/CORStest
    • [ ] CMSMap https://github.com/Dionach/CMSmap
    • [x] Dorks Eye https://github.com/BullsEye0/dorks-eye
    • [ ] XSSMAP https://github.com/Jewel591/xssmap
    • [ ] XSS Tool Overview https://github.com/secdec/xssmap
    • [x] hackrevdns https://github.com/hakluke/hakrevdns
    • [x] spyse.py https://github.com/zeropwn/spyse.py

    Official Images available

    • [x] ~~Sn1per https://github.com/1N3/Sn1per/~~
    • [x] ~~MobSF https://github.com/MobSF/Mobile-Security-Framework-MobSF/~~
    • [x] ~~wfuzz https://github.com/xmendez/wfuzz/~~
    • [x] ~~patator https://github.com/lanjelot/patator~~
    • [x] ~~WPScan https://wpscan.org/~~
    • [x] ~~Amass https://github.com/OWASP/Amass~~
    • [x] ~~changeme https://github.com/ztgrace/changeme~~
    • [x] ~~ysoserial https://github.com/frohoff/ysoserial~~
    • [x] ~~gowitness https://github.com/sensepost/gowitness~~
    opened by thelicato 5
Security Solutions for Innovation
Tools and Docker images to make a fast Ruby on Rails development environment

Tools and Docker images to make a fast Ruby on Rails development environment. With the production templates, moving from development to production will be seamless.

null 1 Nov 13, 2022
Visual disk-usage analyser for docker images

whaler What? A command-line tool for visually investigating the disk usage of docker images Why? Large images are slow to move and expensive to store.

Treebeard Technologies 194 Sep 1, 2022
Define and run multi-container applications with Docker

Docker Compose Docker Compose is a tool for running multi-container applications on Docker defined using the Compose file format. A Compose file is us

Docker 28.2k Jan 8, 2023
This is a tool to develop, build and test PHP extensions in Docker containers.

Develop, Build and Test PHP Extensions This is a tool to develop, build and test PHP extensions in Docker containers. Installation Clone this reposito

Suora GmbH 10 Oct 22, 2022
DAMPP (gui) is a Python based program to run simple webservers using MySQL, Php, Apache and PhpMyAdmin inside of Docker containers.

DAMPP (gui) is a Python based program to run simple webservers using MySQL, Php, Apache and PhpMyAdmin inside of Docker containers.

Sehan Weerasekara 1 Feb 19, 2022
A Python library for the Docker Engine API

Docker SDK for Python A Python library for the Docker Engine API. It lets you do anything the docker command does, but from within Python apps – run c

Docker 6.1k Dec 31, 2022
Docker Container wallstreetbets-sentiment-analysis

Docker Container wallstreetbets-sentiment-analysis A docker container using restful endpoints exposed on port 5000 "/analyze" to gather sentiment anal

null 145 Nov 22, 2022
Hackergame nc 类题目的 Docker 容器资源限制、动态 flag、网页终端

Hackergame nc 类题目的 Docker 容器资源限制、动态 flag、网页终端 快速入门 配置证书 证书用于验证用户 Token。请确保这里的证书文件(cert.pem)与 Hackergame 平台 配置的证书相同,这样 Hackergame 平台为每个用户生成的 Token 才可以通

USTC Hackergame 68 Nov 9, 2022

okta-cmd Introduction docker-compose 辅助脚本

完美风暴666 4 Dec 9, 2021
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions

Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions

Arie Bregman 35.1k Jan 2, 2023
🐳 Docker templates for various languages.

Docker Deployment Templates One Stop repository for Docker Compose and Docker Templates for Deployment. Features Python (FastAPI, Flask) Screenshots D

CodeChef-VIT 6 Aug 28, 2022
Push Container Image To Docker Registry In Python

push-container-image-to-docker-registry 概要 push-container-image-to-docker-registry は、エッジコンピューティング環境において、特定のエッジ端末上の Private Docker Registry に特定のコンテナイメー

Latona, Inc. 3 Nov 4, 2021
Lima is an alternative to using Docker Desktop on your Mac.

lima-xbar-plugin Table of Contents Description Installation Dependencies Lima is an alternative to using Docker Desktop on your Mac. Description This

Joe Block 68 Dec 22, 2022
Build Netbox as a Docker container

netbox-docker The Github repository houses the components needed to build Netbox as a Docker container. Images are built using this code and are relea

Farshad Nick 1 Dec 18, 2021
Some automation scripts to setup a deployable development database server (with docker).

Postgres-Docker Database Initializer This is a simple automation script that will create a Docker Postgres database with a custom username, password,

Pysogge 1 Nov 11, 2021
A job launching library for docker, EC2, GCP, etc.

doodad A library for packaging dependencies and launching scripts (with a focus on python) on different platforms using Docker. Currently supported pl

Justin Fu 55 Aug 27, 2022
A repository containing a short tutorial for Docker (with Python).

Docker Tutorial for IFT 6758 Lab In this repository, we examine the advtanges of virtualization, what Docker is and how we can deploy simple programs

Arka Mukherjee 0 Dec 14, 2021
Bitnami Docker Image for Python using snapshots for the system packages repositories

Python Snapshot packaged by Bitnami What is Python Snapshot? Python is a programming language that lets you work quickly and integrate systems more ef

Bitnami 1 Jan 13, 2022
Hatch plugin for Docker containers

hatch-containers CI/CD Package Meta This provides a plugin for Hatch that allows

Ofek Lev 11 Dec 30, 2022