📖 🌎 For a brief tour of what has shipped so far, consult these docs
Phase 1 - switching the run image
In this phase of the implementation, image extensions may output run.Dockerfiles in order to switch the runtime base image based on which buildpacks detected.
The detector binary should run /bin/detect for buildpacks and extensions, run /bin/generate for extensions, and determine the new run image from the generated Dockerfiles.
In this phase of the implementation, image extensions may output build.Dockerfiles in order to extend the build time base image.
The extender binary, running as root, should apply the Dockerfiles in the order determined during detect, and then drop privileges before executing the build phase.
In this phase of the implementation, image extensions may output Dockerfiles OR run.Dockerfiles in order to extend the runtime base image.
The extender binary, running as root, should apply the Dockerfiles in the order determined during detect, and then provide a reference to the extended run image to the platform, so that the platform can provide this during the export phase.
[ ] If extensions are only used to extend the build image and/or switch the run image, support creator workflow (only for trusted builders, the creator would need to stay root at least until detect/generate has finished)
RFC #0105 - Dockerfiles
📖 🌎 For a brief tour of what has shipped so far, consult these docs
Phase 1 - switching the run image
In this phase of the implementation, image extensions may output run.Dockerfiles in order to switch the runtime base image based on which buildpacks detected. The
detector
binary should run/bin/detect
for buildpacks and extensions, run/bin/generate
for extensions, and determine the new run image from the generated Dockerfiles.Spec:
0.10
0.9
Lifecycle:
Phase 2 - extending the build image
In this phase of the implementation, image extensions may output build.Dockerfiles in order to extend the build time base image. The
extender
binary, running as root, should apply the Dockerfiles in the order determined during detect, and then drop privileges before executing thebuild
phase.Spec:
0.10
0.9
Lifecycle:
0.15
Pack:
0.30.0
Samples:
Documentation:
Phase 3 - extending the run image
In this phase of the implementation, image extensions may output Dockerfiles OR run.Dockerfiles in order to extend the runtime base image. The
extender
binary, running as root, should apply the Dockerfiles in the order determined during detect, and then provide a reference to the extended run image to the platform, so that the platform can provide this during theexport
phase.Spec:
0.12
0.10
Lifecycle:
Libcnb:
TBD
Pack:
Samples:
Documentation:
Optimizations