A GitHub composite action that simplifies Docker image building, pushing, and scanning. It combines Docker build, push, metadata handling, Scout scanning, and Kubescape security analysis into a single action.
- Multi-platform builds (amd64/arm64)
- GitHub Container Registry integration
- Docker Hub support
- Docker Scout vulnerability scanning
- Kubescape security analysis
- GitHub cache optimization
- SARIF report generation
- uses: meysam81/build-docker@v1
with:
image-name: ghcr.io/${{ github.repository }} # e.g. ghrc.io/octocat/hello-world
Name | Description | Required | Default |
---|---|---|---|
image-name |
Image name (including registry path) | Yes | - |
github-token |
GitHub token for authentication | Yes | ${{ github.token }} |
build-args |
Docker build arguments | No | "" |
context |
Build context path | No | . |
dockerhub-username |
Docker Hub username (required when scout-cves or scout-compare is enabled) |
No | "" |
dockerhub-password |
Docker Hub password (required when scout-cves or scout-compare is enabled) |
No | "" |
image-extra-tags |
Additional image tags | No | "" |
image-target |
Multi-stage build target | No | "" |
platforms |
Build platforms | No | linux/amd64,linux/arm64 |
push |
Push to registry (requires packages: write ) |
No | true |
ref |
Git ref to checkout | No | ${{ github.ref }} |
runner |
GitHub runner to use | No | ubuntu-latest |
scout-compare |
Enable Docker Scout comparison | No | false |
scout-comment-pr |
Add Scout results as PR comment (only in pull requests) | No | false |
scout-cves |
Enable Docker Scout CVE scanning | No | false |
kubescape |
Enable Kubescape scanning | No | false |
kubescape-upload-sarif |
Upload Kubescape SARIF results to GitHub Security (requires security-events: write ) |
No | false |
Name | Description |
---|---|
digest |
Image content-addressable digest |
imageid |
Built image ID |
metadata |
Build result metadata |
name: ci
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: meysam81/build-docker@v1
with:
image-name: ghcr.io/${{ github.repository }}
image-extra-tags: |
ghcr.io/${{ github.repository }}:${{ github.run_id }}
kubescape: true
kubescape-upload-sarif: true