86 lines
3.5 KiB
Markdown
86 lines
3.5 KiB
Markdown
# Docker Registry Setup
|
|
|
|
Pipeline rakentaa Docker-kontin ja pushee sen haluttuun registryyn. Konfigurointi `gitea-env.conf`issa, tunnukset repository Secrets -muuttujina.
|
|
|
|
---
|
|
|
|
## 1. `gitea-env.conf` — Docker-kentät
|
|
|
|
| Kenttä | Pakollinen | Kuvaus | Esimerkki |
|
|
|---|---|---|---|
|
|
| `DOCKER_REGISTRY` | **kyllä** | Registry + mahdollinen organisaatio. Koko etuliite ennen kuvan nimeä. Login käyttää ensimmäistä `/`-edeltävää osaa | `gitea.app.keskikuja.site/niko` |
|
|
| `DOCKER_IMAGE_TAG` | **kyllä** | Pelkkä kuvan nimi (ilman tagia, ilman rekisteriä, ilman organisaatiota) | `gitea-ci-library-test-image` |
|
|
| `DOCKER_UI_URL` | ei | Base-URL kontin UI-sivulle. Workflow liittää perään `/VERSION` | `https://gitea.app.keskikuja.site/-/packages/container/niko/gitea-ci-library` |
|
|
|
|
**Koko image-ref:** `${DOCKER_REGISTRY}/${DOCKER_IMAGE_TAG}:${VERSION}`
|
|
Esimerkki: `gitea.app.keskikuja.site/niko/gitea-ci-library-test-image:0.1.0`
|
|
|
|
**Paikallinen build-tagi:** `${DOCKER_IMAGE_TAG}:${VERSION}`
|
|
Esimerkki: `gitea-ci-library-test-image:0.1.0`
|
|
|
|
---
|
|
|
|
## 2. Gitea Secrets — tunnukset
|
|
|
|
Workflow tekee `docker login -u "$DOCKER_USERNAME" --password-stdin`. Mitä arvoja laitetaan, riippuu registrystä:
|
|
|
|
| Registry | `DOCKER_USERNAME` | `DOCKER_PASSWORD` | Mistä saadaan |
|
|
|---|---|---|---|
|
|
| Gitea Packages | `${{ github.actor }}` (automaattinen) | **PAT** scope `write:packages` | User Settings → Applications → Generate Token |
|
|
| Docker Hub | Docker Hub -käyttäjä | Access Token (ei salasana) | Hub Account Settings → Security → Access Tokens |
|
|
| Artifactory | service account -tunnus | API-token | Artifactory Admin → Users → käyttäjä → token |
|
|
|
|
`DOCKER_USERNAME` on optionaalinen — jos sitä ei ole asetettu, workflow käyttää `${{ github.actor }}` (workflowin käynnistäjä). Riittää asettaa vain `DOCKER_PASSWORD`.
|
|
|
|
**Asetus:** Repository → Settings → Actions → Secrets → **Add new secret**
|
|
|
|
---
|
|
|
|
## 3. Esimerkkejä
|
|
|
|
### 3a. Gitea Packages
|
|
|
|
```
|
|
DOCKER_REGISTRY=gitea.app.keskikuja.site/niko
|
|
DOCKER_IMAGE_TAG=gitea-ci-library-test-image
|
|
DOCKER_UI_URL=https://gitea.app.keskikuja.site/-/packages/container/niko/gitea-ci-library
|
|
```
|
|
|
|
- `DOCKER_USERNAME` = Gitea-käyttäjätunnus
|
|
- `DOCKER_PASSWORD` = **PAT** (User Settings → Applications → Generate Token, scope `write:packages`)
|
|
|
|
> Runnerin automaattinen `GITEA_TOKEN` ei yleensä sisällä `write:packages`-scopea. Tarvitaan erillinen PAT.
|
|
|
|
### 3b. Docker Hub
|
|
|
|
```
|
|
DOCKER_REGISTRY=docker.io/library
|
|
DOCKER_IMAGE_TAG=oma-kuva
|
|
DOCKER_UI_URL=https://hub.docker.com/r/library/oma-kuva
|
|
```
|
|
|
|
- `DOCKER_USERNAME` = Docker Hub -käyttäjätunnus
|
|
- `DOCKER_PASSWORD` = Docker Hub Access Token (suositeltu) tai salasana
|
|
|
|
### 3c. Artifactory (kuten legacy Jenkins)
|
|
|
|
```
|
|
DOCKER_REGISTRY=ngdo-docker.artifactorypro.shared.pub.tds.tieto.com
|
|
DOCKER_IMAGE_TAG=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
|
|
```
|
|
|
|
- `DOCKER_USERNAME` = Artifactory-käyttäjätunnus
|
|
- `DOCKER_PASSWORD` = Artifactoryn API-token
|
|
|
|
---
|
|
|
|
## 4. Tarkistuslista
|
|
|
|
- [ ] `DOCKER_REGISTRY` asetettu (registry + org)
|
|
- [ ] `DOCKER_IMAGE_TAG` asetettu (pelkkä nimi)
|
|
- [ ] (tarvittaessa) `DOCKER_USERNAME`-secret — oletus `github.actor`
|
|
- [ ] `DOCKER_PASSWORD`-secret luotu repoon (PAT/token/salasana)
|
|
- [ ] Tokenilla/salasanalla oikeus **pushata** registryyn
|
|
- [ ] (valinnainen) `DOCKER_UI_URL` asetettu → commit status linkkaa kontin UI-sivulle
|