O melhor ambiente para compilar os pacotes Debian é sempre um ambiente baseado em Debian. Embora os contêineres baseados em Alpine sejam bons devido ao tamanho pequeno e aos tempos de configuração rápidos, eles introduzem vários problemas, dois dos quais são particularmente problemáticos:
- eles usam Busybox, onde os pacotes Debian dependem das variantes GNU da maioria das ferramentas ( por exemplo,
tar
como você descobriu); - o mais importante, eles usam musl, onde o padrão Debian é glibc.
Ambos podem ser trabalhados, mas quando você faz isso você perdeu a vantagem de um pequeno container Alpine, comparado a um container Debian mínimo (como bitnami/minideb
as você mencionou).
Observe que, se você estiver executando um derivado do Debian em seus sistemas de desenvolvimento e / ou compilação, poderá pular o estágio do contêiner completamente, enquanto ainda estiver usando um ambiente de compilação contido, usando pbuilder
. Para velocidade máxima, monte um tmpfs em /var/cache/pbuilder/build
e execute a compilação com eatmydata
. sbuild
e cowbuilder
também vale a pena investigar, especialmente se você costuma criar pacotes semelhantes.
Como um aparte, em vez de criar pacotes binários usando dpkg-deb -b
, eu altamente recomendo aprender como construir pacotes fonte; começar com o pacote pragmático do Debian de Vincent Bernat, é legal e fácil.