mirror of
https://github.com/AlessandroAcuna/Home.git
synced 2025-12-19 05:14:33 +00:00
1.6 KiB
1.6 KiB
Deploy del sito su Kubernetes usando l'immagine GHCR
- Build e push automatico
- La GitHub Action
.github/workflows/docker-publish.ymlbuilda e pusha l'immagine sughcr.io/<OWNER>/home:latestquando fai push sumain.
- Aggiornare i manifest
- Modifica
k8s/deployment.yamle sostituisciOWNERcon il tuo GitHub username (o l'organization) se l'immagine è privata.
- Secrets per cluster privato
- Se l'immagine è privata, crea un secret per il pull: kubectl create secret docker-registry ghcr-secret --docker-server=ghcr.io --docker-username= --docker-password=<PERSONAL_ACCESS_TOKEN> --docker-email=
- Poi aggiungi nello
spec.template.specdel deployment: imagePullSecrets:- name: ghcr-secret
- Deploy sul cluster
- Assicurati di essere connesso al cluster (kubectl config use-context ...)
- Applica i manifest: kubectl apply -f k8s/deployment.yaml kubectl apply -f k8s/service.yaml
- Nota su permissions GHCR
- Se usi
GITHUB_TOKENper pushare pacchetti, assicurati di abilitare ilpermissions: packages: writenelle settings del workflow e che il repository abbia Packages abilitati.
Se il push fallisce
- Usa un Personal Access Token (PAT) con scope
write:packagescome secretGHCR_PATe modifica lo step di login nella action per usarepassword: ${{ secrets.GHCR_PAT }}al posto diGITHUB_TOKEN.
I permessi del workflow
- Lo YAML di esempio include: permissions: contents: read packages: write id-token: write
Questo è sufficiente per pushare immagini private su GHCR se il repository appartiene all'utente. Per organizzazioni, potresti dover configurare permessi aggiuntivi.