Sobre o projeto

Buildah é uma ferramenta de linha de comando de código aberto para construir imagens de contêiner da Open Container Initiative (OCI). Faz parte do ecossistema do projeto containers e está intimamente relacionado ao Podman. Capacidades principais descritas no README: - Criar um contêiner de trabalho do zero ou de uma imagem existente como ponto de partida. - Criar uma imagem a partir de um contêiner de trabalho ou de instruções em um Dockerfile/Containerfile. - Construir imagens no formato de imagem OCI ou no formato tradicional de imagem Docker upstream. - Montar e desmontar o sistema de arquivos raiz de um contêiner de trabalho para manipulação direta. - Usar o conteúdo atualizado do sistema de arquivos raiz de um contêiner como uma camada de sistema de arquivos para criar uma nova imagem. - Excluir um contêiner de trabalho ou uma imagem, e renomear um contêiner local. Buildah é projetado para funcionar sem exigir privilégios de root. Seus comandos replicam as operações encontradas em um Dockerfile, permitindo construções de imagem com e sem Dockerfiles. O projeto afirma que seu objetivo é fornecer uma interface de nível mais baixo, estilo coreutils, para construir imagens, e que construir sem Dockerfiles permite a integração de outras linguagens de script no processo de construção. Buildah segue um modelo fork-exec e não roda como um daemon; é baseado em uma API Go que pode ser incorporada a outras ferramentas. O README explica a relação com o Podman: Podman é especializado em manter e modificar imagens OCI (puxar, etiquetar) e em criar, executar e manter contêineres a partir dessas imagens. Para construir imagens via Dockerfiles, Podman usa a API Go do Buildah e pode ser instalado independentemente. Uma diferença chave é o conceito de contêiner: contêineres Podman são destinados a ser de longa duração, enquanto contêineres Buildah existem para permitir que o conteúdo seja adicionado de volta a uma imagem. O README observa que `buildah run` emula o comando RUN em um Dockerfile, enquanto `podman run` emula `docker run`, e que devido a diferenças subjacentes de armazenamento, contêineres Podman não são visíveis de dentro do Buildah e vice-versa. O README inclui um exemplo de shell que cria um contêiner a partir de uma imagem base, executa atualizações de pacotes e instala lighttpd, define anotações de tempo de construção, configura o comando e a porta exposta, e confirma o contêiner em um nome de imagem. Comandos CLI documentados incluem: add, build, commit, config, containers, copy, from, images, info, inspect, mount, pull, push, rename, rm, rmi, run, tag, umount, unshare e version. O README também fornece links para tutoriais, notas de instalação, um guia de solução de problemas, demos, um changelog, diretrizes de contribuição e um plano de desenvolvimento. Metas futuras mencionadas incluem mais testes de CI e possivelmente comandos CLI adicionais.