EpicMorg: Buildah-Compose Wrapper - CLI wrapper for Buildah build system
Project description
Description
Python wrapper to run Buildah from the shell, driven by the build manifest in a docker-compose.yml file.
Motivation
- You have a Docker project that contains:
docker-compose.yml— as the build manifest- one or more
Dockerfiles in the project
- You want to automate builds with the
buildahbuild system. buildahdoes not natively consumedocker-compose.ymlfor builds.
Requirements
- Linux with the
buildahbinary onPATH(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 allx-mirrors--clean— remove all buildah containers and images
Options:
--compose-file FILE— path to thedocker-compose.ymlfile (default:docker-compose.yml)--squash/--no-squash— single-layer output for all services (default: off; per-servicex-squashoverrides 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 buildruns with--format docker(OCI format does not carryHEALTHCHECK).- Builds run sequentially, so
FROMchains (base -> runtime -> app) resolve in order. - Pushes use the default registry auth (
~/.config/containers/auth.jsonorREGISTRY_AUTH_FILE).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file buildah_wrapper-2.0.2.6.tar.gz.
File metadata
- Download URL: buildah_wrapper-2.0.2.6.tar.gz
- Upload date:
- Size: 16.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16e2632ede51a207e0bd4e346858ff3796fa9cd274cf0bcd5a9ec529e0515e1b
|
|
| MD5 |
1e11943db2212b6f5bd30a826045a8b8
|
|
| BLAKE2b-256 |
21ca6bd63898e6a6269c8e9cd29fa94153b24ec202e39d90f3a6672874ff88fb
|
File details
Details for the file buildah_wrapper-2.0.2.6-py3-none-any.whl.
File metadata
- Download URL: buildah_wrapper-2.0.2.6-py3-none-any.whl
- Upload date:
- Size: 17.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ad226efd7025d9e64252089c8ad14938df628cc39a17a3717cffb00608fde4b
|
|
| MD5 |
eba96a56a974023dbcc349f2ddc0e8aa
|
|
| BLAKE2b-256 |
37265ca24952e3a93fcfa50e86272e64f2cf87b6e671129eff831346539917bb
|