A simple Docker image builder and publisher
Project description
🐳 Docker Auto-Builder & Publisher
A powerful, zero-config Python utility that automates the Docker image lifecycle: Build, Tag, and Push.
It seamlessly integrates with your Git workflow, supporting both remote repository cloning and local development contexts, with built-in auto-versioning capabilities.
✨ Key Features
- 🚀 Remote Clone & Build: Point to any Git URL, and it handles the rest.
- 📍 Local Context Detection: Run it inside your repo—it auto-detects the root and correct remote.
- 🏷️ Smart Tagging:
- Auto-infers image names from your git remote (e.g.,
git@github.com:user/app→user/app). - Auto-Versioning: Automatically bumps your semantic version (patch level) based on the latest Git tag.
- Auto-infers image names from your git remote (e.g.,
- 🔐 Flexible Auth: Authenticate via CLI arguments, Environment Variables, or existing local sessions.
- 📜 Beautiful Logs: Clear, colored output to track your build progress.
🛠️ Installation
Option 1: Development Usage
If you want to contribute or modify the code:
- Set up the Environment:
python3 -m venv .venv source .venv/bin/activate # Install runtime + dev dependencies pip install -e .[dev]
- Run directly:
buildpub
Option 2: Install as a System Command (Recommended)
You can install this tool globally (or in your user environment) to run it from anywhere.
-
Install via pip:
pip install .
(Run this inside the directory containing
pyproject.toml) -
Run it from anywhere:
buildpub
🚀 Quick Start
1. Build from your Current Directory (Local Mode)
The most common use case. Go to your project folder and run:
# This detects the git repo, infers the image name, and builds 'latest'
buildpub
2. Auto-Version Bump
Automatically detect the latest git tag (e.g., v1.0.2), bump it (to v1.0.3), build, and push.
buildpub --auto-version
3. Build a Remote Repository
Build a specific branch from a remote URL without cloning it manually.
buildpub \
--repo https://github.com/Start Bootstrap/startbootstrap-clean-blog.git \
--image myuser/clean-blog \
--tag v2.0
⚙️ Usage Reference
buildpub [OPTIONS]
Core Arguments
| Flag | Description | Default |
|---|---|---|
--repo |
Git repository URL. If omitted, checks current directory. | None (Local) |
--image |
Target Image Name (e.g., user/repo). Auto-inferred if omitted. |
Inferred |
--tag |
Specific tag to use. Overridden if --auto-version is set. |
latest |
--auto-version |
(Flag) If set, bumps the latest git tag (patch version). | False |
--dockerfile |
Relative path to the Dockerfile. | Dockerfile |
Environment & Context
| Flag | Description | Default |
|---|---|---|
--branch |
Branch to checkout (Only for Remote Build). | main |
--build-arg |
Pass build arguments (can be used multiple times). Example: --build-arg ENV=prod |
None |
Authentication
| Flag | Description | Env Variable |
|---|---|---|
--username |
Registry Username | DOCKER_USERNAME |
--password |
Registry Token/Password | DOCKER_PASSWORD |
--registry |
Registry URL (e.g., ghcr.io) |
None (Docker Hub) |
--verbose |
(Flag) Enable verbose logging (INFO level). Default is ERROR only. | False |
Pro Tip: For CI/CD environments, use the Environment Variables
DOCKER_USERNAMEandDOCKER_PASSWORDinstead of flags for better security.
📦 Examples
🔹 Basic Build & Push
buildpub --tag production
Builds current local code, pushes as {inferred_name}:production.
🔹 Custom Dockerfile & Args
buildpub \
--dockerfile build/Dockerfile.prod \
--build-arg APP_ENV=production \
--tag v1.5
🔹 CI/CD Workflow (with Env Vars)
export DOCKER_USERNAME="myuser"
export DOCKER_PASSWORD="mysecrettoken"
buildpub --auto-version
Project details
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 buildpub-0.1.0.tar.gz.
File metadata
- Download URL: buildpub-0.1.0.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67bab0d4ba29f0d541085eb0d40ae38b79ca120604303aaf5343dafe81378ecd
|
|
| MD5 |
3cdc9751334ba09206d8df8296fb39f1
|
|
| BLAKE2b-256 |
1eccbb340e9c0b3ed13aea5dde8b5fbc6c6154a0510e2831b04f0acf4b853330
|
File details
Details for the file buildpub-0.1.0-py3-none-any.whl.
File metadata
- Download URL: buildpub-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de3c63b84deb6dd3ecb3f4dee9ddaba930604c6a9802b06a00c6ffe14113789b
|
|
| MD5 |
154db2a0a99abc4ab5fddbbb1e0fb078
|
|
| BLAKE2b-256 |
62ebfb135230d16cd590a493a0835640d99d8af2ee13ded312befc9351134693
|