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...
Run sandboxed Firefox with image and sound inside a container by nguyens
[comment]: # (Please use the project descriptio...
Real-time container runtime support by a_faerber
[comment]: # (Please use the project descriptio...
Building a CNF solution for Edge environment by lizhang
Project Description
Network managemen...
Make iguana-workflow to support multiple container frontends by oholecek
Project Description
Iguana is an attempt ...
Humidity sensors with dashboard by joachimwerner
Build a network of ("edge") humidity sensors...