# repo2kaniko
[![Build Status](https://github.com/manics/repo2kaniko/actions/workflows/build.yml/badge.svg)](https://github.com/manics/repo2kaniko/actions/workflows/build.yml)
[![Container repository](https://img.shields.io/badge/quay.io-container-purple)](https://quay.io/repository/manics/repo2kaniko?tab=tags)
`repo2kaniko` is a plugin for [repo2docker](http://repo2docker.readthedocs.io) that lets you use [Kaniko](https://github.com/GoogleContainerTools/kaniko) instead of Docker.
Kaniko must run in a container, can only build images, and can only store images in a registry.
It has the big advantage that it i completely unprivileged and doesn't require any host configuration, unlike e.g. Podman which requires your system to have the correct cgroups configuration.
It does not use a local Docker store, so it is not possible to separate the build and push steps.
**This means the repo2docker `--push`/`--no-push` arguments have no effect.**
The default in this plugin is to automatically push the image to a registry after it is built.
Set Traitlet `KanikoEngine.push_image=False` or environment variable `KANIKO_PUSH_IMAGE=0` to disable pushing the image.
Kaniko does not cache layers locally, instead it uses a registry for caching.
You should probably use a dedicated local private registry for speed and not the remote registry used for storing the built image.
Use `KanikoEngine.cache_registry_credentials` or `KANIKO_CACHE_REGISTRY_CREDENTIALS` to specify the credentials for the cache registry.
These behave similarly to `ContainerEngine.registry_credentials` and `CONTAINER_ENGINE_REGISTRY_CREDENTIALS`.
## Running
```
podman run -it --rm quay.io/manics/repo2kaniko \
repo2docker --debug --engine=kaniko \
--Repo2Docker.user_id=1000 --user-name=jovyan \
--KanikoEngine.registry_credentials=registry=quay.io \
--KanikoEngine.registry_credentials=username=quay-user \
--KanikoEngine.registry_credentials=password=quay-password \
--image-name=quay.io/quay-user/r2d-test \
--no-run \
https://github.com/binderhub-ci-repos/minimal-dockerfile
```
With a local registry that can be used as a cache:
```
./run-local-registry.sh
REGISTRY=...
podman run -it --rm quay.io/manics/repo2kaniko \
repo2docker --debug --engine=kaniko \
--Repo2Docker.user_id=1000 --user-name=jovyan \
--KanikoEngine.cache_registry=$REGISTRY/cache \
--KanikoEngine.cache_registry_credentials=username=user \
--KanikoEngine.cache_registry_credentials=password=password \
--KanikoEngine.cache_registry_insecure=true \
--image-name=$REGISTRY/r2d-test \
--no-run \
https://github.com/binderhub-ci-repos/minimal-dockerfile
```
Raw data
{
"_id": null,
"home_page": "https://github.com/manics/repo2kaniko",
"name": "repo2kaniko",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "reproducible science environments docker",
"author": "Simon Li",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/ab/9b/f26442c789c9e305a1ce0e7281f2f212584fa0fab0caec6227382a9834d7/repo2kaniko-0.1.0.tar.gz",
"platform": null,
"description": "# repo2kaniko\n\n[![Build Status](https://github.com/manics/repo2kaniko/actions/workflows/build.yml/badge.svg)](https://github.com/manics/repo2kaniko/actions/workflows/build.yml)\n[![Container repository](https://img.shields.io/badge/quay.io-container-purple)](https://quay.io/repository/manics/repo2kaniko?tab=tags)\n\n`repo2kaniko` is a plugin for [repo2docker](http://repo2docker.readthedocs.io) that lets you use [Kaniko](https://github.com/GoogleContainerTools/kaniko) instead of Docker.\n\nKaniko must run in a container, can only build images, and can only store images in a registry.\nIt has the big advantage that it i completely unprivileged and doesn't require any host configuration, unlike e.g. Podman which requires your system to have the correct cgroups configuration.\n\nIt does not use a local Docker store, so it is not possible to separate the build and push steps.\n**This means the repo2docker `--push`/`--no-push` arguments have no effect.**\nThe default in this plugin is to automatically push the image to a registry after it is built.\nSet Traitlet `KanikoEngine.push_image=False` or environment variable `KANIKO_PUSH_IMAGE=0` to disable pushing the image.\n\nKaniko does not cache layers locally, instead it uses a registry for caching.\nYou should probably use a dedicated local private registry for speed and not the remote registry used for storing the built image.\nUse `KanikoEngine.cache_registry_credentials` or `KANIKO_CACHE_REGISTRY_CREDENTIALS` to specify the credentials for the cache registry.\nThese behave similarly to `ContainerEngine.registry_credentials` and `CONTAINER_ENGINE_REGISTRY_CREDENTIALS`.\n\n## Running\n\n```\npodman run -it --rm quay.io/manics/repo2kaniko \\\n repo2docker --debug --engine=kaniko \\\n --Repo2Docker.user_id=1000 --user-name=jovyan \\\n --KanikoEngine.registry_credentials=registry=quay.io \\\n --KanikoEngine.registry_credentials=username=quay-user \\\n --KanikoEngine.registry_credentials=password=quay-password \\\n --image-name=quay.io/quay-user/r2d-test \\\n --no-run \\\n https://github.com/binderhub-ci-repos/minimal-dockerfile\n```\n\nWith a local registry that can be used as a cache:\n\n```\n./run-local-registry.sh\nREGISTRY=...\npodman run -it --rm quay.io/manics/repo2kaniko \\\n repo2docker --debug --engine=kaniko \\\n --Repo2Docker.user_id=1000 --user-name=jovyan \\\n --KanikoEngine.cache_registry=$REGISTRY/cache \\\n --KanikoEngine.cache_registry_credentials=username=user \\\n --KanikoEngine.cache_registry_credentials=password=password \\\n --KanikoEngine.cache_registry_insecure=true \\\n --image-name=$REGISTRY/r2d-test \\\n --no-run \\\n https://github.com/binderhub-ci-repos/minimal-dockerfile\n```\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "Repo2docker Kaniko builder",
"version": "0.1.0",
"project_urls": {
"Documentation": "https://repo2docker.readthedocs.io",
"Homepage": "https://github.com/manics/repo2kaniko"
},
"split_keywords": [
"reproducible",
"science",
"environments",
"docker"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0276467654c7eed5f81af5950808837efdf890a73f1b7e77e0abd969bb29ae69",
"md5": "f0437f76f919ad0322dba81f5f01a161",
"sha256": "25ab09bf57d8df9feae95d5277157e5227bb5fc9580e10bd39b7a4ddbf71f9b9"
},
"downloads": -1,
"filename": "repo2kaniko-0.1.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "f0437f76f919ad0322dba81f5f01a161",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.8",
"size": 6696,
"upload_time": "2023-11-11T22:24:31",
"upload_time_iso_8601": "2023-11-11T22:24:31.709002Z",
"url": "https://files.pythonhosted.org/packages/02/76/467654c7eed5f81af5950808837efdf890a73f1b7e77e0abd969bb29ae69/repo2kaniko-0.1.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ab9bf26442c789c9e305a1ce0e7281f2f212584fa0fab0caec6227382a9834d7",
"md5": "8cfe58ea3611431dd8b1d5523343d803",
"sha256": "8e88a64bc5192c7a9ed580b0d3db96f4400766c9b9907a9e479e12d4f8d044cd"
},
"downloads": -1,
"filename": "repo2kaniko-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "8cfe58ea3611431dd8b1d5523343d803",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 11948,
"upload_time": "2023-11-11T22:24:32",
"upload_time_iso_8601": "2023-11-11T22:24:32.936237Z",
"url": "https://files.pythonhosted.org/packages/ab/9b/f26442c789c9e305a1ce0e7281f2f212584fa0fab0caec6227382a9834d7/repo2kaniko-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-11 22:24:32",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "manics",
"github_project": "repo2kaniko",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "repo2kaniko"
}