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:
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 the build phase.
Spec:
Lifecycle:
Pack:
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 the export phase.
Spec:
Lifecycle:
Libcnb:
Pack:
Samples:
Documentation:
Optimizations
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
detectorbinary should run/bin/detectfor buildpacks and extensions, run/bin/generatefor extensions, and determine the new run image from the generated Dockerfiles.Spec:
0.100.9Lifecycle:
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
extenderbinary, running as root, should apply the Dockerfiles in the order determined during detect, and then drop privileges before executing thebuildphase.Spec:
0.100.9Lifecycle:
0.15Pack:
pack builder createshould support extensions pack#1468 (more important, PR in progress)pack extension *commands pack#1470pack inspectwhen image built with extensions should show the extensions pack#1486pack builder inspectshould show extensions if they are present pack#1488--extensionpack#15510.30.0Samples:
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
extenderbinary, 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 theexportphase.Spec:
0.120.10Lifecycle:
Libcnb:
TBDPack:
Samples:
Documentation:
Optimizations
pack build --interactiveshould show extensions pack#1487