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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.