Sobre o projeto

Baseimage-docker é uma imagem base do Docker construída sobre o Ubuntu e ajustada para uso dentro de contêineres. É publicada como `phusion/baseimage` no Docker Hub e GHCR, e é destinada como um ponto de partida para suas próprias imagens. O projeto argumenta que o Ubuntu padrão não é projetado para contêineres: seu init Upstart assume hardware real ou virtualizado, e muitos casos de contêineres são fáceis de dar errado. Baseimage-docker agrupa as correções e ferramentas de administração que considera necessárias. O que inclui: um processo init correto, `/sbin/my_init`, que recolhe processos filhos órfãos e encaminha SIGTERM para os filhos para que possam fechar limpa e corretamente; runit como substituto para Upstart, usado para supervisão de serviços e reinicialização automática de daemons que falharam; syslog-ng, ouvindo apenas localmente e encaminhando mensagens para `docker logs`, mais logrotate; cron, e um servidor SSH que é desativado por padrão e permite apenas autenticação por chave; `setuser` para executar comandos como outro usuário com um `$HOME` correto, e `install_clean` para instalações do apt que limpam os caches; Correções para incompatibilidades do APT com o Docker. Uso: defina `FROM phusion/baseimage:<VERSION>` e `CMD ["/sbin/my_init"]`. Daemons adicionais são adicionados criando scripts de execução sob `/etc/service/<NAME>`; runit os inicia e os reinicia na saída. Scripts de inicialização podem ser colocados em `/etc/my_init.d` ou `/etc/rc.local`, e devem sair com código 0. Variáveis de ambiente passadas via `docker run --env` ou Dockerfile `ENV` são importadas por `my_init` de `/etc/container_environment`, então descarregadas para formatos de shell e JSON para que serviços e scripts em qualquer linguagem possam ler os valores originais. O diretório é de propriedade do root e restrito ao grupo `docker_env` por padrão, pois os valores podem ser sensíveis. Tempos limite para terminar filhos podem ser ajustados com `KILL_PROCESS_TIMEOUT` e `KILL_ALL_PROCESSES_TIMEOUT`. O README afirma que a imagem consome cerca de 8,3 MB de RAM e é mais leve do que Busybox ou Alpine em sua própria estrutura. Também explica que executar vários processos do sistema operacional em um contêiner é compatível com a filosofia de serviço lógico único do Docker, e que o projeto não manda em nenhum dos dois. Ubuntu 26.04 LTS envia Rust Coreutils em vez de GNU Coreutils, o que o README observa como uma consideração.