-
Notifications
You must be signed in to change notification settings - Fork 116
Description
Description
The creator doesn't appear to have support for calling the extender; digging around a little, it appears this behavior is intentional and prevented in a couple of ways:
- Instantiating the
creator's directory store with an empty extender directory - Raising an error in
packif thecreatorshould be used when running the lifecycle with extensions
In our particular case, we're looking to call the creator from within a container based on our builder (which is bundled with extensions) to build and push an image to a registry.
Proposed solution
Optimistically, the creator would include a flag (or flow) to check for extensions within the builder and would swap the call to the builder for a call to the extender. In the alternatives section below, I outlined our behavior for calling extender directly but continuing to call the creator would be optimal for us.
I'm not entirely sure if giving the extender from within the creator is feasible from a permissions point of view, but would love to hear additional thoughts on the subject and ways that this could be solved, if it was an issue that was looking to be solved in the future when extensions were introduced.
Describe alternatives you've considered
Since the extender cannot be called from the creator (as outlined above), we've tried to call the individual phase commands of the creator command, which involves calling the extender rather than the builder to carry out our desired flow. When calling the extender directly, it's able to get to the point where the build extension is used, but fails due to an "Operation not permitted" error when attempting to run the first line of our extension's Dockerfile snippet, as seen below:
My initial hunch is that this is due to the extender not being called from within an individual container with root access, as is done by pack when it calls the extender during build, but would love any additional insight. In our case, we're currently not able to spin up a container from within this container hosting the builder image where we're calling the individual creator commands, so this isn't seemingly a route that we'll be able to pursue further.
Additional context
I'm happy to share any additional information or context that may be needed!