# 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 (kuten `repository`) eivät riitä — konttirekisteri vaatii nimenomaan `package`-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_REGISTRY` asetettu `gitea-env.conf`issa - [ ] `DOCKER_IMAGE_NAME` asetettu `gitea-env.conf`issa - [ ] PAT luotu Giteassa scopella `package` Read and Write - [ ] `DOCKER_PASSWORD`-secret tallennettu repositoryn Secretsiin (se PAT) - [ ] (tarvittaessa) `DOCKER_USERNAME`-secret — oletus `github.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 `niko` alla. 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)