Lightweight tool for docker image creation with multiple variants.
Project description
| doimbu - Docker Image Builder
Lightweight tool for docker image creation with multiple variants.
Quick summary
Docker image creation with multiple variants with a single small command.
Scenario
Some docker images need to be delivered in multiple variants.
For example, every mongodb image version have multiple suffixes:
- 7.0.14-ubi8
- 7.0.14-ubi9
- 7.0.14-ubuntu2204
When you change the version of these images, you'll need to tediously issue slightly changed long docker build commands for every variant.
Doimbu streamlines this task, with a config file you'll store all your docker configuration that you need for your docker build commands, and with a single command you'll create the docker build commands to all docker image variants that you need.
Table of contents
- Dependencies
- Installation
- Image Tag Pattern
- Configuration
- Usage
- How to run tests
- Contributing
- Contact
Dependencies
Required installed software:
(not covered in these instructions)
- docker 27.3.1+
- python 3.12.3+
- poetry 1.8.4+ (optional)
(development and testing versions, it may be compatible with previous versions)
Installation
Global installation
pip install doimbu
(it's recommended to use a virtual environment instead of installing it globally)
Virtualenv installation
python -m venv venv
source venv/bin/activate
pip install doimbu
deactivate
Image Tag Pattern
[tag_namespace/][tag_repository]:[version]-[variant]
Tab pattern example
mongodb/mongodb-community-server:7.0.14-ubi8mongodb/mongodb-community-server:7.0.14-ubi9mongodb/mongodb-community-server:7.0.14-ubuntu2204
Configuration
Doimbu retrieves its configuration from 4 sources:
- project root path
- project directory structure
- doimbu.ini configuration file
- command line parameters
project path
tag_repository
The tag repository is retrieved from the project root path leaf.
project directory structure
variant
A directory called variants should be created at your project root path.
Inside this directory, subdirectories containing Dockerfiles should be created for each image variant.
doimbu.ini
All build configurations are placed at this file, including overrides for the tag_repository and
variant.
Samples
- Only mandatory configuration
doimbu.ini (
default_variantandvesion). - Full sample doimbu.ini (with all available parameters).
command line parameters
All configuration that can be placed in doimbu.ini can also be overridden by command line
parameters.
A simple way to check all command line options is:
python -m doimbu --help
Usage
Minimal usage form
(all config from file system and doimbu.ini)
python -m doimbu
Usage with parameters
python -m doimbu --default-variant nobel --tag-namespace mongodb --tag-repository mongodb-community-server --build-arg 'git_username="jhonny joe"' --build-arg 'git_user_email="jhonny@joe.com"' --dry-run
How to run tests
To execute the tests, execute the following command:
poetry run pytest
Contributing
Contributing instructions can be found here.
Contact
alex carvalho - linkedin.com/in/alex-carvalho-big-data
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file doimbu-0.4.2.tar.gz.
File metadata
- Download URL: doimbu-0.4.2.tar.gz
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.3 Linux/6.8.0-51-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4b7e74a1a9c075ab7b696619d00db3e4d3c71b5a4a2b637e570f0d54584b6e2
|
|
| MD5 |
e4c55191454470be1ae65066eb3459dd
|
|
| BLAKE2b-256 |
8b686e43461ca71f55ac41abd704ea387146280af2d8baba31ccbaef9171139b
|
File details
Details for the file doimbu-0.4.2-py3-none-any.whl.
File metadata
- Download URL: doimbu-0.4.2-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.3 Linux/6.8.0-51-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5922f952b98b3b6408d1f2098ec3bb8d9e625536a6d0cedbde44fc6ceeb0d883
|
|
| MD5 |
8819a2ee6a961476afb81802e8ac98d8
|
|
| BLAKE2b-256 |
6bf53d7ba6d72a769296059e471e524e3dd250cd65203d2de14acac639ce831c
|