This article has been archived. Please see Coder Docs for the updated version.
All Docker images are created from a base image, which act as parents in a hierarchical structure. Any image that extends a base image with customizations is considered to be descendants of the base image.
These descendant images contain all of the original tooling and configuration that were initially installed onto the parent base image, as well as the newly introduced customizations.
Coder allows your organization to structure your image hierarchy however you'd like. However, we've seen organizations do well by defining a set of org-wide base images from which all projects are created.
These base images extend common open-source base images, but they also contain security patches, org-wide utilities, and configuration settings/information that individual project images will get by default when you create additional images.