# Proposal: Declare Docker images dependencies via the \`ruby\_slim\_docker\_packages\` key in \`gemspec.metadata\`

**URL:** <https://community.fly.io/t/proposal-declare-docker-images-dependencies-via-the-ruby-slim-docker-packages-key-in-gemspec-metadata/9979>\
**Category:** General\
**Tags:** rails\
**Created:** [January 11, 2023, 6:40pm UTC](https://community.fly.io/t/proposal-declare-docker-images-dependencies-via-the-ruby-slim-docker-packages-key-in-gemspec-metadata/9979 "2023-01-11T18:40:16Z")\
**Posts on this page:** 1\
**Showing post:** 11

<div class="post-metadata">

**Author:** ![rubys](https://sea1.discourse-cdn.com/fly1/user_avatar/community.fly.io/rubys/32/16907_2.png) [@rubys](https://community.fly.io/u/rubys)\
**Post date:** [January 20, 2023, 5:53am UTC](https://community.fly.io/t/proposal-declare-docker-images-dependencies-via-the-ruby-slim-docker-packages-key-in-gemspec-metadata/9979/11 "2023-01-20T05:53:44Z")

</div>

> [@Brad](#):
>
> Could a distribution use a package manager other than its default?

Here’s a list:

> **[List of software package management systems | Linux](https://en.wikipedia.org/wiki/List_of_software_package_management_systems#Linux)**
>
> 1.dpkg: Originally used by Debian and now by Ubuntu. Uses the .deb format and was the first to have a widely known dependency resolution tool, APT. The ncurses-based front-end for APT, aptitude, is also a popular package manager for Debian-based systems; |
> 2.Entropy: Used by and created for Sabayon Linux. It works with binary packages that are bzip2-compressed tar archives (file extension: .tbz2), that are created using Entropy itself, from tbz2 binaries produced by Portage: From ebuilds, a type...

My general impression is that there are several in popular use for redhat like operating systems, but for debian like operating systems it is rare to use anything but apt. That being said, some things are only installable by running curl commands, and other things may require adding a package repository and even downloading a gpg key before installing.

Here’s an example: [How to use Puppeteer inside a Docker container - DEV Community](https://dev.to/cloudx/how-to-use-puppeteer-inside-a-docker-container-568c)

While that example is using node, the same instructions can be used for Ruby with puppeteer-ruby.

> [@Brad](#):
>
> Let’s also say that the `jsbundling-rails` gem is trying to declare its package dependencies.

In theory the story is the same for node packages. They can have operating system dependencies. In practice the javascript used by Rails programs is intended to be run in the browser so it won’t make use of host dependent packages beyond what is needed to build or bundle the software.

---

_[View the full topic](https://community.fly.io/t/proposal-declare-docker-images-dependencies-via-the-ruby-slim-docker-packages-key-in-gemspec-metadata/9979)._
