Metadata-Version: 2.4
Name: kaniko-wrapper
Version: 2.0.2.6
Summary: EpicMorg: Kaniko-Compose Wrapper - CLI wrapper for Kaniko build system
Project-URL: Homepage, https://github.com/EpicMorg/kaniko-wrapper
Project-URL: Documentation, https://github.com/EpicMorg/kaniko-wrapper/blob/master/README.md
Project-URL: Repository, https://github.com/EpicMorg/kaniko-wrapper.git
Project-URL: Bug Tracker, https://github.com/EpicMorg/kaniko-wrapper/issues
Project-URL: Changelog, https://github.com/EpicMorg/kaniko-wrapper/blob/master/CHANGELOG.md
Author-email: Marry <okomarova@saber.games>, EpicMorg <developer@epicm.org>
Maintainer-email: Marry <okomarova@saber.games>, EpicMorg <developer@epicm.org>
License: MIT License
        
        Copyright (c) EpicMorg
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE.md
Keywords: build,ci,docker,kaniko,wrapper
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.8
Requires-Dist: colorlog
Requires-Dist: pydantic-settings
Requires-Dist: python-dotenv
Requires-Dist: pyyaml
Requires-Dist: termcolor
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Description-Content-Type: text/markdown

# [![Activity](https://img.shields.io/github/commit-activity/m/EpicMorg/kaniko-wrapper?label=commits&style=flat-square)](https://github.com/EpicMorg/kaniko-wrapper/commits) [![GitHub issues](https://img.shields.io/github/issues/EpicMorg/kaniko-wrapper.svg?style=popout-square)](https://github.com/EpicMorg/kaniko-wrapper/issues) [![GitHub forks](https://img.shields.io/github/forks/EpicMorg/kaniko-wrapper.svg?style=popout-square)](https://github.com/EpicMorg/kaniko-wrapper/network) [![GitHub stars](https://img.shields.io/github/stars/EpicMorg/kaniko-wrapper.svg?style=popout-square)](https://github.com/EpicMorg/kaniko-wrapper/stargazers)  [![Size](https://img.shields.io/github/repo-size/EpicMorg/kaniko-wrapper?label=size&style=flat-square)](https://github.com/EpicMorg/kaniko-wrapper/archive/master.zip) [![Release](https://img.shields.io/github/v/release/EpicMorg/kaniko-wrapper?style=flat-square)](https://github.com/EpicMorg/kaniko-wrapper/releases) [![GitHub license](https://img.shields.io/github/license/EpicMorg/kaniko-wrapper.svg?style=popout-square)](LICENSE.md) [![Changelog](https://img.shields.io/badge/Changelog-yellow.svg?style=popout-square)](CHANGELOG.md) [![PyPI - Downloads](https://img.shields.io/pypi/dm/kaniko-wrapper?style=flat-square)](https://pypi.org/project/kaniko-wrapper/)

## Description
Python wrapper for run kaniko from shell with parameters from `docker-compose.yml` file.

## Motivation
1. You have Docker project thar contains:
1.1 `docker-compose.yml` - as build manifest
1.2 One or more `Dockerfile`s in project
2. You want to automate builds with `kaniko` build system.
3. `kaniko` dont support `docker-compose.yml` builds.

## How to
```
pip install kaniko-wrapper
cd <...>/directory/contains/docker/and/docker-compose-file/
kaniko-wrapper
```

> **Note on the executor image.** Google archived the original `kaniko` in 2025
> and `gcr.io/kaniko-project/executor` is frozen at `v1.24.0`. The default
> executor is now the community fork `ghcr.io/osscontainertools/kaniko:latest`.
> Pin a tag in CI and override with `--kaniko-image` / `KANIKO_IMAGE` if needed.

### Arguments (examples)
* `--compose-file` - Path to docker-compose.yml file
* `--kaniko-image` - Kaniko executor image (def. `ghcr.io/osscontainertools/kaniko:latest`)
* `--push`, `--deploy`, `-d`, `-p` - Build and push to the registry and all `x-mirrors`
* `--dry-run`, `--dry` - Dry run: build images without pushing
* `--no-push` - Build without pushing to the registry
* `--verbose`, `-V` - Verbose output (shortcut for `--log-level DEBUG`)
* `--log-level` - Override log level: `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL`
* `--engine` - Container engine: `docker` (default) or `podman`
* `--version`, `-v` - Show script version
* `--help`, `-h` - Show this help message and exit

## Supported features (example):

1. Single project in `docker-compose.yml`
```
services:
  app:
    image: "EpicMorg/kaniko-wrapper:image"
    build:
      context: .
      dockerfile: ./Dockerfile
```

2. Multiproject in `docker-compose.yml`

```
services:
  app:
    image: "EpicMorg/kaniko-wrapper:image-jdk11"
    build:
      context: .
  app-develop:
    image: "EpicMorg/kaniko-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 — push one build to several registries

Add an `x-mirrors` list to a service. On `--push`, the built image is pushed to
the primary `image` and to every mirror in a single build (multiple
`--destination`). A failed push to any mirror fails the build. All target
registries must be authenticated in `~/.docker/config.json`.

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