45 lines
1.2 KiB
YAML
45 lines
1.2 KiB
YAML
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
|