# ivuorinen/actions/docker-build ## Docker Build ### Description Builds a Docker image for multiple architectures with enhanced security and reliability. ### Inputs | name | description | required | default | |-------------------------|-------------------------------------------------------------------------------------|----------|-----------------------------------------------------| | `image-name` |
The name of the Docker image to build. Defaults to the repository name.
| `false` | `""` | | `tag` |The tag for the Docker image. Must follow semver or valid Docker tag format.
| `true` | `""` | | `architectures` |Comma-separated list of architectures to build for.
| `false` | `linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6` | | `dockerfile` |Path to the Dockerfile
| `false` | `Dockerfile` | | `context` |Docker build context
| `false` | `.` | | `build-args` |Build arguments in format KEY=VALUE,KEY2=VALUE2
| `false` | `""` | | `cache-from` |External cache sources (e.g., type=registry,ref=user/app:cache)
| `false` | `""` | | `push` |Whether to push the image after building
| `false` | `true` | | `max-retries` |Maximum number of retry attempts for build and push operations
| `false` | `3` | | `token` |GitHub token for authentication
| `false` | `""` | | `buildx-version` |Specific Docker Buildx version to use
| `false` | `latest` | | `buildkit-version` |Specific BuildKit version to use
| `false` | `v0.11.0` | | `cache-mode` |Cache mode for build layers (min, max, or inline)
| `false` | `max` | | `build-contexts` |Additional build contexts in format name=path,name2=path2
| `false` | `""` | | `network` |Network mode for build (host, none, or default)
| `false` | `default` | | `secrets` |Build secrets in format id=path,id2=path2
| `false` | `""` | | `auto-detect-platforms` |Automatically detect and build for all available platforms
| `false` | `false` | | `platform-build-args` |Platform-specific build args in JSON format
| `false` | `""` | | `parallel-builds` |Number of parallel platform builds (0 for auto)
| `false` | `0` | | `cache-export` |Export cache destination (e.g., type=local,dest=/tmp/cache)
| `false` | `""` | | `cache-import` |Import cache sources (e.g., type=local,src=/tmp/cache)
| `false` | `""` | | `dry-run` |Perform a dry run without actually building
| `false` | `false` | | `verbose` |Enable verbose logging with platform-specific output
| `false` | `false` | | `platform-fallback` |Continue building other platforms if one fails
| `false` | `true` | | `scan-image` |Scan built image for vulnerabilities
| `false` | `false` | | `sign-image` |Sign the built image with cosign
| `false` | `false` | | `sbom-format` |SBOM format (spdx-json, cyclonedx-json, or syft-json)
| `false` | `spdx-json` | ### Outputs | name | description | |-------------------|-------------------------------------------------------| | `image-digest` |The digest of the built image
| | `metadata` |Build metadata in JSON format
| | `platforms` |Successfully built platforms
| | `platform-matrix` |Build status per platform in JSON format
| | `build-time` |Total build time in seconds
| | `scan-results` |Vulnerability scan results if scanning enabled
| | `signature` |Image signature if signing enabled
| | `sbom-location` |SBOM document location
| ### Runs This action is a `composite` action. ### Usage ```yaml - uses: ivuorinen/actions/docker-build@main with: image-name: # The name of the Docker image to build. Defaults to the repository name. # # Required: false # Default: "" tag: # The tag for the Docker image. Must follow semver or valid Docker tag format. # # Required: true # Default: "" architectures: # Comma-separated list of architectures to build for. # # Required: false # Default: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 dockerfile: # Path to the Dockerfile # # Required: false # Default: Dockerfile context: # Docker build context # # Required: false # Default: . build-args: # Build arguments in format KEY=VALUE,KEY2=VALUE2 # # Required: false # Default: "" cache-from: # External cache sources (e.g., type=registry,ref=user/app:cache) # # Required: false # Default: "" push: # Whether to push the image after building # # Required: false # Default: true max-retries: # Maximum number of retry attempts for build and push operations # # Required: false # Default: 3 token: # GitHub token for authentication # # Required: false # Default: "" buildx-version: # Specific Docker Buildx version to use # # Required: false # Default: latest buildkit-version: # Specific BuildKit version to use # # Required: false # Default: v0.11.0 cache-mode: # Cache mode for build layers (min, max, or inline) # # Required: false # Default: max build-contexts: # Additional build contexts in format name=path,name2=path2 # # Required: false # Default: "" network: # Network mode for build (host, none, or default) # # Required: false # Default: default secrets: # Build secrets in format id=path,id2=path2 # # Required: false # Default: "" auto-detect-platforms: # Automatically detect and build for all available platforms # # Required: false # Default: false platform-build-args: # Platform-specific build args in JSON format # # Required: false # Default: "" parallel-builds: # Number of parallel platform builds (0 for auto) # # Required: false # Default: 0 cache-export: # Export cache destination (e.g., type=local,dest=/tmp/cache) # # Required: false # Default: "" cache-import: # Import cache sources (e.g., type=local,src=/tmp/cache) # # Required: false # Default: "" dry-run: # Perform a dry run without actually building # # Required: false # Default: false verbose: # Enable verbose logging with platform-specific output # # Required: false # Default: false platform-fallback: # Continue building other platforms if one fails # # Required: false # Default: true scan-image: # Scan built image for vulnerabilities # # Required: false # Default: false sign-image: # Sign the built image with cosign # # Required: false # Default: false sbom-format: # SBOM format (spdx-json, cyclonedx-json, or syft-json) # # Required: false # Default: spdx-json ```