Add kaniko-build composite action, update docker-publish to use Kaniko
This commit is contained in:
parent
6a69247512
commit
9f99683140
2 changed files with 58 additions and 10 deletions
45
.forgejo/actions/kaniko-build/action.yml
Normal file
45
.forgejo/actions/kaniko-build/action.yml
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
name: "Kaniko Build and Push"
|
||||||
|
description: "Build and push Docker images using Kaniko (no Docker daemon needed)"
|
||||||
|
inputs:
|
||||||
|
registry:
|
||||||
|
required: false
|
||||||
|
default: "git.mcintire.me"
|
||||||
|
username:
|
||||||
|
required: false
|
||||||
|
default: "graham"
|
||||||
|
token:
|
||||||
|
required: true
|
||||||
|
image:
|
||||||
|
required: true
|
||||||
|
tag:
|
||||||
|
required: false
|
||||||
|
default: "latest"
|
||||||
|
dockerfile:
|
||||||
|
required: false
|
||||||
|
default: "Dockerfile"
|
||||||
|
context:
|
||||||
|
required: false
|
||||||
|
default: "."
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Write registry credentials
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
mkdir -p /kaniko/.docker
|
||||||
|
cat > /kaniko/.docker/config.json <<'EOF'
|
||||||
|
{"auths":{"${{ inputs.registry }}":{"username":"${{ inputs.username }}","password":"${{ inputs.token }}"}}}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
- name: Build and Push with Kaniko
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
docker run --rm \
|
||||||
|
-v "${{ inputs.context }}":/workspace \
|
||||||
|
-v /kaniko/.docker:/kaniko/.docker \
|
||||||
|
gcr.io/kaniko-project/executor:latest \
|
||||||
|
--context=/workspace \
|
||||||
|
--dockerfile="/workspace/${{ inputs.dockerfile }}" \
|
||||||
|
--destination="${{ inputs.image }}:${{ inputs.tag }}" \
|
||||||
|
--cache=true
|
||||||
|
|
@ -4,16 +4,22 @@ on:
|
||||||
image_name:
|
image_name:
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
description: "Image name (e.g. aprs.me)"
|
|
||||||
registry:
|
registry:
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
default: "git.mcintire.me"
|
default: "git.mcintire.me"
|
||||||
description: "Container registry hostname"
|
|
||||||
username:
|
username:
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
default: "graham"
|
default: "graham"
|
||||||
|
dockerfile:
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: "Dockerfile"
|
||||||
|
context:
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
default: "."
|
||||||
secrets:
|
secrets:
|
||||||
FORGEJO_TOKEN:
|
FORGEJO_TOKEN:
|
||||||
required: true
|
required: true
|
||||||
|
|
@ -24,15 +30,12 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Login to Forgejo Registry
|
- name: Build and Push via Kaniko
|
||||||
uses: graham/infra/.forgejo/actions/container-login@main
|
uses: graham/infra/.forgejo/actions/kaniko-build@main
|
||||||
with:
|
with:
|
||||||
registry: ${{ inputs.registry }}
|
registry: ${{ inputs.registry }}
|
||||||
username: ${{ inputs.username }}
|
username: ${{ inputs.username }}
|
||||||
token: ${{ secrets.FORGEJO_TOKEN }}
|
token: ${{ secrets.FORGEJO_TOKEN }}
|
||||||
|
image: ${{ inputs.registry }}/${{ inputs.username }}/${{ inputs.image_name }}
|
||||||
- name: Build and Push
|
dockerfile: ${{ inputs.dockerfile }}
|
||||||
run: |
|
context: ${{ inputs.context }}
|
||||||
TAG=${{ inputs.registry }}/${{ inputs.username }}/${{ inputs.image_name }}:latest
|
|
||||||
docker build -t $TAG .
|
|
||||||
docker push $TAG
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue