Skip to main content

Activity GitHub issues GitHub forks GitHub stars Size Release GitHub license Changelog PyPI - Downloads

Description

Python wrapper to run Buildah from the shell, driven by the build manifest in a docker-compose.yml file.

Motivation

  1. You have a Docker project that contains:
    1. docker-compose.yml — as the build manifest
    2. one or more Dockerfiles in the project
  2. You want to automate builds with the buildah build system.
  3. buildah does not natively consume docker-compose.yml for builds.

Requirements

  • Linux with the buildah binary on PATH (invoked as a native host binary — there is no executor image to pull).
  • Python >= 3.9.

How to

pip install buildah-wrapper
cd <...>/directory/containing/docker-and-docker-compose-file/
buildah-wrapper --build            # build into the local store
buildah-wrapper --build --deploy   # build, then push to the registry and mirrors
buildah-wrapper --deploy           # push already-built images
buildah-wrapper --clean            # remove all buildah containers and images

Running with no action prints the help screen.

Arguments

Actions are combinable (e.g. --build --deploy):

  • --build, -b — build images into the local store
  • --deploy, -d — push built images to the registry and all x-mirrors
  • --clean — remove all buildah containers and images

Options:

  • --compose-file FILE — path to the docker-compose.yml file (default: docker-compose.yml)
  • --squash / --no-squash — single-layer output for all services (default: off; per-service x-squash overrides it)
  • --verbose, -V — verbose output (shortcut for --log-level DEBUG)
  • --log-level LEVEL — override log level: DEBUG, INFO, WARNING, ERROR, CRITICAL
  • --version, -v — show script, Python and buildah versions
  • --help, -h — show the help message and exit

Supported features

1. Single project in docker-compose.yml

services:
  app:
    image: "epicmorg/buildah-wrapper:image"
    build:
      context: .
      dockerfile: ./Dockerfile

2. Multi-project in docker-compose.yml

services:
  app:
    image: "epicmorg/buildah-wrapper:image-jdk11"
    build:
      context: .
  app-develop:
    image: "epicmorg/buildah-wrapper:image-develop-jdk11"
    build:
      context: .
      dockerfile: ./Dockerfile.develop
  app-develop-17:
    image: "epicmorg/astralinux:image-develop-jdk17"
    build:
      context: .
      dockerfile: ./Dockerfile.develop-17

3. Mirrors — x-mirrors

Add an x-mirrors list to a service to push the built image to additional registries during --deploy. A failed push to any mirror fails the service.

services:
  app:
    image: docker.io/epicmorg/app:latest
    build:
      context: .
    x-mirrors:
      - quay.io/epicmorg/app:latest
      - ghcr.io/epicmorg/app:latest

4. Squash — x-squash

Add an x-squash field to a service to control single-layer output per service. Default is false. A per-service x-squash overrides the --squash / --no-squash CLI default for that service.

services:
  app:
    image: docker.io/epicmorg/app:latest
    build:
      context: .
    x-squash: true

Notes

  • buildah build runs with --format docker (OCI format does not carry HEALTHCHECK).
  • Builds run sequentially, so FROM chains (base -> runtime -> app) resolve in order.
  • Pushes use the default registry auth (~/.config/containers/auth.json or REGISTRY_AUTH_FILE).

Metadata

Release files for buildah-wrapper 2.0.2.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for buildah-wrapper 2.0.2.6
File Size Uploaded
buildah_wrapper-2.0.2.6.tar.gz 16.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for buildah-wrapper 2.0.2.6
File Interpreter ABI Platform
buildah_wrapper-2.0.2.6-py3-none-any.whl Python 3 none any Details

Total release size: 34.0 kB

Release files / buildah_wrapper-2.0.2.6.tar.gz

Download URL buildah_wrapper-2.0.2.6.tar.gz
Size 16.1 kB
Tags Source
SHA-256 checksum
How to use checksums
16e2632ede51a207e0bd4e346858ff3796fa9cd274cf0bcd5a9ec529e0515e1b
BLAKE2b-256 checksum
How to use checksums
21ca6bd63898e6a6269c8e9cd29fa94153b24ec202e39d90f3a6672874ff88fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / buildah_wrapper-2.0.2.6-py3-none-any.whl

Download URL buildah_wrapper-2.0.2.6-py3-none-any.whl
Size 17.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ad226efd7025d9e64252089c8ad14938df628cc39a17a3717cffb00608fde4b
BLAKE2b-256 checksum
How to use checksums
37265ca24952e3a93fcfa50e86272e64f2cf87b6e671129eff831346539917bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page