kaniko-action/README.md

63 lines
2 KiB
Markdown
Raw Normal View History

2024-11-10 10:29:21 +00:00
# kaniko-action
Build and optionally push Docker images in Kubernetes using [Kaniko](https://github.com/GoogleContainerTools/kaniko)
without access to `docker.sock`.
This action allows you to build container images using Kaniko in Forgejo workflows. You can also optionally
push the built images to a registry.
Note: Kaniko requires a privileged container.
### Example Workflow
Here's an example of how to use this action in your workflow:
```yaml
name: Build and Push Docker Image
on:
push:
branches:
- main
jobs:
build:
runs-on: flakes-action
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Build and push
uses: https://code.252.no/tommy/kaniko-action@latest
with:
cache: false
context: /workspace/${{ github.repository }}
credentials: |
code.252.no=${{ github.repository_owner }}:${{ secrets.REGISTRY_TOKEN }}
destinations: "code.252.no/tommy/mbpfan:${{ steps.meta.outputs.tags }}"
push: 'true'
```
In this example, the action builds the Docker image defined in Dockerfile located at the root of the repository, and pushes it to
`myregistry.com/myimage:latest`.
## Inputs
**cache:** (optional) Set this flag to true to enable caching with Kaniko. Defaults to `false`.
**cache_repo:** (required if cache is true) Repository to use for cache.
**cache_ttl:** (optional) Cache timeout in hours. Defaults to Kaniko default.
**context:** (optional) Path to the build context. Defaults to the `workspace`.
**credentials:** (optional) Whitespace separated list of authentication credentials in the format `registry_server=user:password`.
**destinations:** (required if push is true) Destinations to push images to, whitespace separated.
**docker_file:** (optional) Path to the Dockerfile. Defaults to Dockerfile. It must be in the context.
**push:** (optional) Push an image to the registry. Defaults to `true`.
**version:** (optional) Version of the software, to be added as `org.opencontainers.image.version` label.