Project Description
Writing container definition files is boring and error-prone: let's use power of a programming language to generate containers!
Project purpose:
- Experiment about container creation workflow and container management/publishing/versioning
- Play with a new non-mainstream programming language and show off capabilities/ease of usage. Ideally I plan to use nim, if time permits also experiment with others
- Follow Test-Driven Development (TDD) practices
- Have fun
Advantages:
- all features of a proper language: variables, multiline strings, logic statements, loops, code reuse.
- static syntax checking, no more typos or duplicate entries
- generate many docker files from one template [testing, production, ... ]
- generate sequence [Dockerfile.suse => Dockerfile.python => Dockerfile.yourapp, ...]
- could generate command line snippets or CI build scripts with the same data
- optimize container image creation removing redundant layers
Goal for this Hackweek
Preliminary study and make a proof of concept on a github repo with some working examples
Resources
- https://github.com/jen-soft/pydocker
- https://github.com/dahernan/godockerize
- https://www.mankier.com/5/Containerfile
Further ideas
- secret scan to avoid API key/tokens leaks
- optional "runtime" checking
- extend for multi_stage, docker compose
- import existing Dockerfile
- sanitize / check for issues ("linting")
- iterate on generation by extending to YAML format: k8s manifests, github workflows ...
Looking for hackers with the skills:
This project is part of:
Hack Week 22
Activity
Comments
-
2 months ago by dancermak | Reply
We are currently generating the Dockerfiles for the BCI images via python: https://github.com/SUSE/BCI-dockerfile-generator/tree/main/src/bci_build This is probably not what you are looking for, as it's really just a wrapper around jinja2 templates, but maybe it can help you out a bit.
-
about 2 months ago by amanzini | Reply
project is online at https://github.com/ilmanzo/containertools
-
about 2 months ago by amanzini | Reply
published v0.1.0 on the NIM package directory: https://nimble.directory/pkg/containertools
Similar Projects
Containerized git server/client for playground and tutorials by mberti
[comment]: # (Please use the project descriptio...
Improve Docker registry listing tool by rbranco
Project Description
[regview](https://git...
Container images for building the Uyuni docs by juliogonzalezgil
Project Description
The Uyuni doc require...
Hack on project MONAI (Medical Open Network for Artificial Intelligence) by jordimassaguerpla
Project Description
MONAI is a set of o...
Run sandboxed Firefox with image and sound inside a container by nguyens
[comment]: # (Please use the project descriptio...
Humidity sensors with dashboard by joachimwerner
Build a network of ("edge") humidity sensors...
image-tools: simple tool for mirror/save/load container images & KDM and chart image list generator. by StarryWang
[comment]: # (Please use the project descriptio...