Skip to content

tolfsh/Exegol-images

 
 

Repository files navigation

Light-weight Exegol images

This is a fork of the original Exegol-Images project. The objective is to get rid of unused exegol features that I do not personally use and that are taking so much disk space on the original images. Do not get me wrong, it is a good idea to provide everything you could need in Exegol, but having images that are taking more than 10% was a bit problematic for me. So I decided to dive into Exegol-Images and remove the features and programs I don't use.

TL;DR;

git clone https://github.com/tolfsh/Exegol-Images
cd Exegol-Images
exegol install --build-path $PWD mynewexegolimage web
exegol start my-web-test mynewexegolimage

What did I do?

I removed unused feature from the sources/dockerfiles/*.dockerfile. I juste worked on base, ad and web images.

Using Docker caching functionality

During development, it was very hard to make quick tests because of the way the images are built. Indeed, the whole installation process is contained into a single bash function. Therefore, an error in the function leads to the whole installation process failing, even huge apt install. Developers I decided to remake the Dockerfile to be able to use docker caching feature. This has the cons of making a big Dockerfile but at least you don't need to rewait half an hour if the installation fails at the end.

What if a tool is missing?

Exegol-Images is using a smart way to install tools. Each tool installation is written inside a bash function. When build the images, all the function are loaded and the function are called, installing what is needed. During post installation, all the install scripts are removed.

In my version, the install scripts are not removed, even better the function are loaded in you .zshrc. This means if you need a tool, you can install it the Exegol way by running install_TOOLNAME.

Start using the images

Available Images

Image Usage Size Original Exegol Size
base Contains base installation with multiple python versions, Go, Java, Rust... ~8.5GB N/A
web Basic CLI tools for web penetration testing ~11.8GB ~ 26.1GB
ad (:soon::tm:) Contains CLI tools for internal and Active Directory penetration testing Coming soon ~40.0GB

Using Original Exegol

You can use the original Exegol project to build the images :

git clone https://github.com/tolfsh/Exegol-Images
cd Exegol-Images
exegol install --build-path $PWD mynewexegolimage web
  • --build-path is the path where the dockerfiles and the and the sources are located
  • mynewexegolimage is the name you give to the imported image. After, you can create a container with exegol start my-project mynewexegolimage
  • web is optional, and is the prefix of the dockerfile you want to use, here web.dockerfile. If you don't give it, Exegol will ask you.

⚠️ Warning !! Exegol uses dash - in images tags for versioning under the hood. Using a dash - inside the image name will cause the image to not be detected as a usable image but has an outdated image. I should make a PR to fix this... For now, just don't use dashes.

Note: The base image is used to build the other images. You may need to build it first, otherwise it is pulled from the DockerHub

Create my custom images

You can create you own custom image! The easiest way is to copy the template dockerfile.template and fill it with the tools you need. Too easy 😎

Using a custom Exegol version

The repo used by Exegol is hardcoded, so I forked it to use my repo. This way, you can install images by downloading them from the DockerHub. This version is available here https://github.com/tolfsh/Exegol.


Below this is the original Exegol-Images README.


📌 This repository hosts code for Exegol images, a submodule of the Exegol project. If you were looking for Exegol, go to the main repo


Exegol images

This repository hosts Dockerfiles for each Exegol image, an installation script, and various assets needed during the installation (custom configurations, a history file, an aliases file, etc.). These files can be used to locally build the docker images, there is however a pipeline in place to build, test and push images on DockerHub so that Exegol users don't have to build their own image.

More information on the Exegol documentation.

About

Docker images of the Exegol project, but lighter

Resources

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 86.0%
  • Python 8.1%
  • Dockerfile 5.9%