Construir un Contenedor con Buildah

Buildah es una herramienta que facilita la creación de imágenes de contenedores OCI. Puedes crear imágenes desde cero, a partir de un contenedor descargado de un registro o utilizando un Dockerfile.

Para usar buildah en Fedora IoT necesitarás instalar los paquetes en capas:

$ sudo rpm-ostree install buildah

Más generalmente buildah está utilizado en un entorno de desarrollador y los envases resultantes son entonces cargado a un registro para uso en cualquier aparato.

Los comandos para construir un envase de una imagen de base es similar a las líneas en un Dockerfile. El primer paso es para estirar las imágenes de base y crear el envase laborable:

$ buildah from fedora
fedora-working-container

Añade paquetes al contenedor de trabajo:

$ buildah run fedora-working-container dnf install httpd -y

Crea un directorio de trabajo con algún contenido para un servidor web:

$ mkdir demo-httpd && cd demo-httpd && echo 'muestra contenedora' > index.html

Copia local de archivos en el contenedor de trabajo:

$ buildah copy fedora-working-container index.html /var/www/html/index.html

Define el contenedor del punto frontera para iniciar la aplicación:

$ buildah config --entrypoint "/usr/sbin/httpd -DFOREGROUND" fedora-working-container

Una vez configurado, guarda la imagen:

$ buildah commit fedora-working-container fedora-myhttpd

Se puede alistar las imágenes locales:

$ buildah images

Las imágenes de buildah son las mismas que las imágenes de podman. Ahora puedes ejecutar el contenedor localmente con podman:

$ podman run fedora-myhttpd

Para que la imagen esté disponible en otros dispositivos, sube la imagen a un registro. La imagen predeterminada tiene la etiqueta 'latest'. Utiliza buildah tag para agregar etiquetas adicionales a la imagen antes de subirla a un repositorio.

Para subir la imagen a un registro Docker local:

$ buildah push --tls-verify=false fedora-myhttpd docker://localhost:5000/testuser/fedora-myhttpd:latest

Para enviar datos a un registro remoto, proporcione la URL correcta y cualquiera de las credenciales requeridas:

$ buildah push --creds testuser:5bbb9990-1234-1234-1234-aaa80066887c fedora-myhttpd docker://testuser/fedora-myhttpd

Skopeo puede ser utilizado para inspeccionar los resultados:

$ skopeo inspect --tls-verify=false docker://localhost:5000/testuser/fedora-myhttpd:latest

Comprueba la portabilidad del contenedor con los comandos docker pull, podman pull o buildah from.

Obtén más información sobre cómo usar Buildah en: