{"id":16003465,"url":"https://github.com/manics/repo2kaniko","last_synced_at":"2025-09-09T04:46:56.207Z","repository":{"id":205688747,"uuid":"714840146","full_name":"manics/repo2kaniko","owner":"manics","description":"repo2kaniko is a plugin for repo2docker that lets you use Kaniko","archived":false,"fork":false,"pushed_at":"2025-06-02T21:41:46.000Z","size":139,"stargazers_count":0,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-03T12:27:50.616Z","etag":null,"topics":["jupyter","kaniko","repo2docker"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manics.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-11-06T00:13:59.000Z","updated_at":"2025-06-02T21:41:43.000Z","dependencies_parsed_at":"2024-03-01T22:26:12.821Z","dependency_job_id":"b646b6d8-e5d3-42b4-9267-61921f039157","html_url":"https://github.com/manics/repo2kaniko","commit_stats":{"total_commits":62,"total_committers":2,"mean_commits":31.0,"dds":0.4838709677419355,"last_synced_commit":"a4edf7165e3e9a2906bb378c44988e960ea5b64f"},"previous_names":["manics/repo2kaniko"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/manics/repo2kaniko","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manics%2Frepo2kaniko","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manics%2Frepo2kaniko/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manics%2Frepo2kaniko/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manics%2Frepo2kaniko/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manics","download_url":"https://codeload.github.com/manics/repo2kaniko/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manics%2Frepo2kaniko/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274244253,"owners_count":25248157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jupyter","kaniko","repo2docker"],"created_at":"2024-10-08T10:20:50.727Z","updated_at":"2025-09-09T04:46:56.186Z","avatar_url":"https://github.com/manics.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 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 standalone container, can only build images, and can only store images in a registry.\nIt has the big advantage that it is 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\nKaniko must be run in a standalone container with no other applications, and can only build one image.\nIn practice this means Kaniko must be run in a separate container from repo2docker.\nCommunication between repo2docker and Kaniko is done using a network socket and a helper utility (`kaniko-runner`).\n\n1. Create a new network to isolate Kaniko and repo2docker\n   ```\n   podman network create repo2kaniko\n   ```\n2. Run the `kaniko-runner` container with a shared empty workspace volume that must be mounted to `/workspace`\n   ```\n   podman run -d --rm -p 12321:12321 --name kaniko-runner --network repo2kaniko \\\n     -v /tmp/workspace:/workspace:z kaniko-runner -address=tcp://0.0.0.0:12321\n   ```\n3. Run repo2docker with the kaniko plugin\n   ```\n   podman run -it --rm -v /tmp/workspace:/workspace:z repo2kaniko \\\n     repo2docker --engine=kaniko --no-run --debug \\\n     --user-id=1000 --user-name=jovyan\n     --image-name registry.example.com/r2d-test \\\n     --KanikoEngine.registry_credentials=registry=registry.example.com\n     --KanikoEngine.registry_credentials=username=registry-user\n     --KanikoEngine.registry_credentials=password=registry-password\n     --KanikoEngine.kaniko_address=tcp://kaniko-runner:12321\"\n     https://github.com/binderhub-ci-repos/minimal-dockerfile\n   ```\n\nTo use a local registry as a cache:\n\n```\n./ci/run-local-registry.sh\nREGISTRY=...\n```\n\nAdd the following to the `repo2docker` command:\n\n```\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```\n\n## BinderHub\n\nYou can use repo2kaniko with a recent version of BinderHub\n([1.0.0-0.dev.git.3350.he7995d6 or later](https://hub.jupyter.org/helm-chart/#development-releases-binderhub))\nby adding the following to your configuration:\n\n```yaml\nconfig:\n  KubernetesBuildExecutor:\n    docker_host:\n    build_image: \"quay.io/manics/repo2kaniko:\u003ctag\u003e\"\n    repo2docker_extra_args:\n      - --engine=kaniko\n      - --debug\n\nimageCleaner:\n  enabled: false\n```\n\nIf you want to use a local registry as a cache use something like this:\n\n```yaml\nconfig:\n  KubernetesBuildExecutor:\n    repo2docker_extra_args:\n      - --engine=kaniko\n      - --debug\n      - --KanikoEngine.cache_registry=cache-registry-docker-registry:5000/cache\n      - --KanikoEngine.cache_registry_credentials=username=user\n      - --KanikoEngine.cache_registry_credentials=password=password\n      - --KanikoEngine.cache_registry_insecure=true\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanics%2Frepo2kaniko","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanics%2Frepo2kaniko","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanics%2Frepo2kaniko/lists"}