Why I made pkgr.io – digressions on software packaging
blog.pkgr.io
blog.pkgr.io
EDIT: It's particularly ironic that the aformentioned section of the 12-factor guidelines says an app shouldn't assume the existence of commands like curl and the ImageMagick utilities, yet the Cedar base system includes both.
So it seems to me that containerization, with the whole container under the app developer's control (unlike on Heroku), is the only way to fully implement the 12-factor approach to dependencies. The downside is that the app developer is now responsible for the whole stack except for the kernel, including security-sensitive libraries such as OpenSSL. So I guess we'll need tools to help app developers keep up with changes in the lower layers of the stack. Another problem, for now, is that Docker isn't yet ready for production, and isn't even targeting more conservative distros like CentOS and Debian yet.
On the contrary, with pkgr.io, additional build and runtime dependencies can/must be added by the package maintainer if anything other than the base stuff is needed. See https://pkgr.io/doc#dependencies and, as an example, the .pkgr.yml file for a fairly complex project such as Gitlab: https://github.com/pkgr/gitlabhq/blob/pkgr/.pkgr.yml.