Set of developer tools for working locally on the Noos platform and build optimized Docker base images:
- a CircleCI base image for running CI/CD pipelines
- a DB backup script image for persisting databases into local / remote storage
- a JupyterLab server image for launching a k8s pre-configured Jupyter notebook server
- a Python script image for running Python scripts within a k8s pre-configured container
On Mac OSX, make sure Homebrew has been pre-configured, then install Docker,
brew cask install docker
You can use dive to look into the image build process and each layer.
Dive gives an "image efficiency" ratio and makes it easier to find wasted space in the final image.
brew install dive
- Bundle commands with
&&
to minimize the layer number (created by eachRUN
,COPY
orADD
). - Clean unnecessary files at each layer phase.
- Use
MultiBuild
to only copy the necessary resulting files from a heavy install. - When possible, squash layers that should not be used. An optimized base image could theoretically be squashed entirely.
The development workflows of this project can be managed by noos-invoke, a ready-made CLI for common CI/CD tasks.
~$ noosinv
Usage: noosinv [--core-opts] <subcommand> [--subcommand-opts] ...