Optional provides
in the build plan
#249
loewenstein
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi all,
I have been wondering for a while, if the relatively strict provisions when it comes to mismatches of provided dependencies that are not required is causing more harm then good.
This forces optional dependencies to be separated into individual buildpacks or extensions. Wouldn't an alternative where the
lifecycle
just purges unmatchedprovides
from the build plan and buildpacks and extensions are mandated to only install dependencies that are in the purged build plans be easier to reason about and more versatile?The concrete example I have in mind would be a set of minimal run image and matching extension1 and language specific packaging buildpack. The extension could
provide
all kinds of OS-level dependencies and the buildpack couldrequire
all kinds of OS-level dependencies based on language specific package information (potentially manually maintained2). A concrete example would be the psycopg package that listslibpq.so
as a prerequisite at runtime.As the specification is written, this would require an individual extension per potential dependency, which can become quite a lot and likely also be pretty expensive during build time with all the
Dockerfiles
being created an processed viakaniko
.Let me hear your thoughts, would that be useful?
Best regards
Jan
Footnotes
Aligned with run image in terms of package manager being used, e.g. dpkg / apt-get or apt or rpm. ↩
Often only provided as part of the package documentation, hence it needed to be formalised outside the package manager metadata. ↩
Beta Was this translation helpful? Give feedback.
All reactions