This commit is contained in:
Jordy Hoogeveen
2026-09-09 12:43:11 +02:00
parent dbdb3ecfc3
commit 51f876efd3
10 changed files with 95 additions and 6 deletions
+36
View File
@@ -95,6 +95,42 @@ $env:GITEA_TOKEN = "<token>"
Het script bouwt één image voor `linux/amd64` en `linux/arm64`, zodat dezelfde
tag op een Raspberry Pi en op een x86-server werkt.
### Tokens niet elke sessie opnieuw zetten
Staat er een `.env.release` naast `release.ps1`, dan leest het script die in
voordat er iets gebeurt. Handig voor stap 3, die anders elke nieuwe shell
opnieuw met de hand moet:
```
# .env.release — staat in .gitignore, hoort alleen op de release-machine
GITEA_TOKEN=<token met write:repository>
REGISTRY_USER=<gitea-gebruiker>
REGISTRY_TOKEN=<token met write:package>
```
Een variabele die al in je shell staat wint, zodat je per run kunt afwijken
zonder het bestand aan te passen. Het script logt alleen welke namen het heeft
geladen, nooit de waarden.
Twee **verschillende** tokens is hier de bedoeling: de registry heeft
`write:package` nodig en het aanmaken van een release `write:repository`. Eén
breed token voor beide werkt ook, maar dan gaat een repo-schrijfrecht mee bij
elke `docker push`.
> Een **404** in stap 5 betekent bijna altijd dat de token de repo niet mag
> zien: Gitea geeft op repo-endpoints 404 in plaats van 403, om niet te
> verklappen dat iets bestaat. Controleer dan eerst wie de token is en wat hij
> ziet:
>
> ```powershell
> $h = @{ Authorization = "token $env:GITEA_TOKEN" }
> (Invoke-RestMethod https://vibehoogie.duckdns.org/api/v1/user -Headers $h).login
> (Invoke-RestMethod https://vibehoogie.duckdns.org/api/v1/user/repos -Headers $h).full_name
> ```
>
> Staat de repo niet in die lijst, dan mist de token de repository-scope of
> hoort hij bij een account zonder toegang.
---
## Docker