Make for Docker
The build of custom images is quite straightforward thanks to the Dockerfile. However things go nasty when you have manage the lifecycle of many different versions of many different services. It becomes usually quite frustrating and tedious when you have to copy/paste configuration parts and dependencies that most of these services have actually in common.
Sounds like what our good old-school C Makefiles used to handle? DockerMake is the modern docker-centric version of this approach. You can:
- Define small pieces of configuration or functionality, then mix them together into production docker images. *
- "Inherit" from multiple image builds
- Easily manage images that pull files from multiple directories on your filesystem
- Rebuild an entire stack of images as needed with a single command
Illustrated with production-based examples
8. Swarm “Cabinet”
Many Host OS servers
Scaled on-demand
1 or few Host OS Servers
Fixed number
Few Docker images Many Docker images
Many containers running per image
Scaled on-demand
1 or few containers running per image
Fixed number
Massively Scalable Application Optimization of limited resources
Isolation of team activities and services
Poor man’s scalability
Containers are “Cattle” Containers are “Pets”
Swarm vs “Cabinet” Architecture
16. Imagine a Docker World Where we could...
● Define small pieces of configuration or functionality, then mix
them together into production docker images
● "Inherit" from multiple image builds
● Easily manage images that pull files from multiple directories on
our filesystem
● Rebuild an entire stack of images as needed with a single
command
18. DockerMake
● “Build and manage stacks of docker images - a dependency
graph for Dockerfiles”
● https://github.com/avirshup/DockerMake
● Without the ugly old-school syntax of GNU Makefiles
Make for Docker
The build of custom images is quite straightforward thanks to the
Dockerfile. However things go nasty when you have manage the lifecycle of
many different versions of many different services. It becomes usually
quite frustrating and tedious when you have to copy/paste configuration
parts and dependencies that most of these services have actually in common.
Sounds like what our good old-school C Makefiles used to handle? DockerMake
<https://github.com/avirshup/DockerMake> is the modern docker-centric
version of this approach. You can:
- Define small pieces of configuration or functionality, then mix them
together into production docker images. *
- "Inherit" from multiple image builds
- Easily manage images that pull files from multiple directories on your
filesystem
- Rebuild an entire stack of images as needed with a single command
The speaker will illustrate with production-based examples