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:
|
||||
required: true
|
||||
type: string
|
||||
description: "Image name (e.g. aprs.me)"
|
||||
registry:
|
||||
required: false
|
||||
type: string
|
||||
default: "git.mcintire.me"
|
||||
description: "Container registry hostname"
|
||||
username:
|
||||
required: false
|
||||
type: string
|
||||
default: "graham"
|
||||
dockerfile:
|
||||
required: false
|
||||
type: string
|
||||
default: "Dockerfile"
|
||||
context:
|
||||
required: false
|
||||
type: string
|
||||
default: "."
|
||||
secrets:
|
||||
FORGEJO_TOKEN:
|
||||
required: true
|
||||
|
|
@ -24,15 +30,12 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Login to Forgejo Registry
|
||||
uses: graham/infra/.forgejo/actions/container-login@main
|
||||
- name: Build and Push via Kaniko
|
||||
uses: graham/infra/.forgejo/actions/kaniko-build@main
|
||||
with:
|
||||
registry: ${{ inputs.registry }}
|
||||
username: ${{ inputs.username }}
|
||||
token: ${{ secrets.FORGEJO_TOKEN }}
|
||||
|
||||
- name: Build and Push
|
||||
run: |
|
||||
TAG=${{ inputs.registry }}/${{ inputs.username }}/${{ inputs.image_name }}:latest
|
||||
docker build -t $TAG .
|
||||
docker push $TAG
|
||||
image: ${{ inputs.registry }}/${{ inputs.username }}/${{ inputs.image_name }}
|
||||
dockerfile: ${{ inputs.dockerfile }}
|
||||
context: ${{ inputs.context }}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue