Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_011AgnQS6MHAGGoLNQDvv52d
58 lines
2.1 KiB
Markdown
58 lines
2.1 KiB
Markdown
# docker-build
|
||
|
||
Reusable Gitea Actions workflow: runs [replace-build-vars](https://git.custom-coding.net/templates/replace-build-vars), builds a Docker image, tags it according to the ref and pushes it.
|
||
|
||
## Usage
|
||
|
||
```yaml
|
||
jobs:
|
||
docker:
|
||
uses: templates/docker-build/.gitea/workflows/docker.yaml@v1
|
||
with:
|
||
DockerImageDomain: registry.example.com
|
||
DockerImageOrganisation: my-org
|
||
DockerImageName: my-app
|
||
DockerImageVersion: ${{ github.ref_name }}
|
||
# DockerFilePath: ./Dockerfile
|
||
secrets:
|
||
DockerUsername: ${{ secrets.DOCKER_USERNAME }}
|
||
DockerPassword: ${{ secrets.DOCKER_PASSWORD }}
|
||
```
|
||
|
||
## Inputs / secrets
|
||
|
||
| Name | Required | Default | Description |
|
||
|---|---|---|---|
|
||
| `DockerImageDomain` | yes | | Registry domain |
|
||
| `DockerImageOrganisation` | yes | | Namespace in the registry |
|
||
| `DockerImageName` | yes | | Image name |
|
||
| `DockerImageVersion` | yes | | Value for the `VERSION` build-arg |
|
||
| `DockerFilePath` | no | `./Dockerfile` | Path to the Dockerfile |
|
||
| secret `DockerUsername` | yes | | Registry user |
|
||
| secret `DockerPassword` | yes | | Registry password / token |
|
||
|
||
## Tags
|
||
|
||
Every build is tagged `:latest`, plus one tag based on the ref:
|
||
|
||
| Ref | Tag | Pushed |
|
||
|---|---|---|
|
||
| `master`, `main` | `:<branch>` | yes |
|
||
| `develop`, `feature/*` | branch with `/` → `-` | yes |
|
||
| git tag | `:<tag>` | yes |
|
||
| pull request | `:pr-<number>` | yes |
|
||
| any other branch | | no (build only) |
|
||
|
||
## Versioning
|
||
|
||
Only major tags (`v1`, `v2`, …). Fixes move the existing tag. Changing inputs, secrets or tagging behavior needs a new major tag.
|
||
|
||
History before the move: [UltimateCoder/resuable-workflows](https://git.custom-coding.net/UltimateCoder/resuable-workflows) (`@v1`–`@v3` there remain frozen).
|
||
|
||
## Entscheidungen
|
||
|
||
Decisions by the owner of the `templates` org:
|
||
|
||
- 2026-10-15: Only major tags (`v1`, `v2`, …), no `vX.Y.Z` tags (see Versioning).
|
||
- 2026-10-17: All repos in the `templates` org are public, so consumers' runners can fetch them without credentials. They never contain secrets or internal addresses: secrets come in as `secrets:`, hosts as inputs.
|