3.9 KiB
Docker Registry Setup
Pipeline rakentaa Docker-kontin ja pushee sen haluttuun registryyn.
1. Konfiguroi gitea-env.conf
# DOCKER_REGISTRY on muotoa: registry.example.com/org
#
# host+org: registry.example.com/org
#
# Pipeline rakentaa kuvan: ${DOCKER_REGISTRY}/${DOCKER_IMAGE_NAME}:${VERSION}
DOCKER_REGISTRY=gitea.app.keskikuja.site/niko # PAKOLLINEN — tyhjä ei käy
DOCKER_IMAGE_NAME=gitea-ci-library-test-image # PAKOLLINEN — pelkkä kuvan nimi
DOCKER_UI_URL= # valinnainen — tarkista Giteasta kontin oma UI-osoite ja laita se tähän ilman versiota. Workflow liittää perään /VERSION
| Kenttä | Pakollinen | Kuvaus |
|---|---|---|
DOCKER_REGISTRY |
kyllä | Registry + mahdollinen organisaatio. Tyhjä pysäyttää workflow'n. |
DOCKER_IMAGE_NAME |
kyllä | Pelkkä kuvan nimi. |
DOCKER_UI_URL |
ei | Base-URL kontin UI-sivulle (ilman versiota). Osoite riippuu onko kontti linkitetty repoon vai ei — tarkista Giteasta. Workflow liittää perään /VERSION. |
Koko image-ref = ${DOCKER_REGISTRY}/${DOCKER_IMAGE_NAME}:${VERSION}
Esim. gitea.app.keskikuja.site/niko/gitea-ci-library-test-image:0.1.0
2. Luo PAT (Personal Access Token) Giteassa
Gitea → oma profiili (oikea yläkulma) → Settings → Applications → Manage Access Tokens → Generate New Token
Valitse scope:
| Scope | Pääsy |
|---|---|
package |
Read and Write |
Tämä token toimii salasanana
docker login-komennossa. Muut scopet (kutenrepository) eivät riitä — konttirekisteri vaatii nimenomaanpackage-scopen.
Tokenin arvo näytetään vain kerran luomisen yhteydessä. Kopioi se talteen.
3. Tallenna PAT repositoryn Secretsiin
Nämä ovat kaksi eri paikkaa:
- Access Tokenit (User Settings) = missä luot tokenin
- Repository Secrets (Repository Settings) = minne talletat sen workflow'n käyttöön
Repository → Settings → Actions → Secrets → Add new secret
| Secret | Arvo |
|---|---|
DOCKER_PASSWORD |
Edellisessä vaiheessa luotu PAT |
DOCKER_USERNAME-secretiä ei tarvita. Workflow käyttää automaattisesti ${{ github.actor }} (workflowin käynnistäjä).
Jos registry vaatii eri käyttäjätunnuksen kuin github.actor (esim. Artifactory, Docker Hub), lisää myös:
| Secret | Arvo |
|---|---|
DOCKER_USERNAME |
Registryn käyttäjätunnus |
4. Tarkistuslista ennen ajoa
DOCKER_REGISTRYasetettugitea-env.confissaDOCKER_IMAGE_NAMEasetettugitea-env.confissa- PAT luotu Giteassa scopella
packageRead and Write DOCKER_PASSWORD-secret tallennettu repositoryn Secretsiin (se PAT)- (tarvittaessa)
DOCKER_USERNAME-secret — oletusgithub.actor
5. Esimerkkejä eri polkurakenteista
5a. Pelkkä hosti — Artifactory
DOCKER_REGISTRY=ngdo-docker.artifactorypro.shared.pub.tds.tieto.com
DOCKER_IMAGE_NAME=microservice-temperature-store
DOCKER_UI_URL=https://artifactorypro.shared.pub.tds.tieto.com/ui/repos/tree/General/ngdo-docker.artifactorypro.shared.pub.tds.tieto.com/microservice-temperature-store
- Kontti:
ngdo-docker.../microservice-temperature-store:0.1.0 - Secret
DOCKER_USERNAME= service account -tunnus - Secret
DOCKER_PASSWORD= API-token
5b. Hosti + org — Gitea user-taso
DOCKER_REGISTRY=gitea.app.keskikuja.site/niko
DOCKER_IMAGE_NAME=gitea-ci-library-test-image
DOCKER_UI_URL= # tarkista Giteasta kontin UI-osoite
- Kontti:
gitea.app.keskikuja.site/niko/gitea-ci-library-test-image:0.1.0 - Paketti käyttäjän
nikoalla. Linkitys repoon tehdään Gitean UI:sta: paketin sivulta (Package → Settings) → linkitä repositoryyn.
DOCKER_REGISTRY=docker.io/library
DOCKER_IMAGE_NAME=oma-kuva
DOCKER_UI_URL=https://hub.docker.com/r/library/oma-kuva
- Secret
DOCKER_USERNAME= Docker Hub -käyttäjä - Secret
DOCKER_PASSWORD= Access Token (ei salasana)