Imagens Docker que não contêm um gerenciador de pacotes

Imagens Docker que não contêm um gerenciador de pacotes

Normalmente penso nos contêineres do docker como processos executáveis ​​que carregam consigo pequenos pedaços de "ambiente", de modo que nada precisa ser instalado no host do docker. Por exemplo, um jar java junto com um jre.

Para instalar o jre, podemos começar com uma caixa base do Ubuntu e então usar o aptitude para instalá-lo. No entanto, embora exijamos efetivamente um gerenciador de pacotes para configurar as dependências (um jre, neste caso) para nosso aplicativo, não acho que seja estritamente necessário para executar nosso aplicativo.

O que levanta uma questão que está muito longe de ser uma preocupação prática, mas ainda assim uma curiosidade intelectual: é viável instalar dependências em uma imagem docker, sem incluir também o gerenciador de pacotes na imagem construída?

Olhando para como isso pode ser feito para chroots, parece ser difícil ou impossível. Diante disso, esse desafio parece solucionável (por exemplo, se eu construir um aplicativo Java com gradle ou maven, não preciso incluir o binário gradle ou maven em meu programa publicado), então também estou curioso para sei por que parece não ter uma solução fácil. Alguém está trabalhando no problema de instalação de dependências em uma imagem docker (ou chroot, nesse caso)? Se não, por que não?

(A soluçãoaquie solução 2 deaquirequer a instalação de um gerenciador de pacotes em um chroot, o que não resolve minha questão de como tirar o gerenciador de pacotes da imagem do docker. A solução 1 da segunda trata da construção a partir da fonte (eu acho?), Que também não é exatamente o que estou procurando).

informação relacionada