Kaniko¶
Questa sezione non è stata ancora tradotta in inglese a causa della mancanza di tempo, ogni contributo è ben accetto! :)
Per usufruire del nuovo runner basta taggare il lo stage della propria
CI con il tag kanikobuild. Tuttavia vi è una differenza
fondamentale, il nuovo runner può usufruire di kaniko per
buildare le immagini che poi andranno pushate su
docker.repo.localmonks.net. Maggiori informazioni a
https://github.com/GoogleContainerTools/kaniko
Repository¶
Le modifiche da apportare alla configurazione della repository sono descritte di seguito:
È necessario settare la variabile d’ambiente
KANIKO_CACHEall’interno del progetto. La variabileKANIKO_CACHEpuò essere impostata con 2 possibili valori true o false.
Caution
la cache va impostata solo in determinati casi in cui le
performance nella build sono un elemento cruciale, NON impostare la
cache se utilizzate Dockerfile multi stage. Se siete indecisi impostate
KANIKO_CACHE a false
CI¶
Le modifiche da apportare alla configurazione della CI sono descritte di seguito:
Modificare il tag dello stage a
kanikopublishSuccessivamente lo stage deve utilizzare l’immagine di kaniko
docker.repo.localmonks.net/kaniko:v0.17.1-monk1L’entrypoint dell’immagine deve essere impostato a
[""]per evitare che venga lanciato il comando di default.
All’interno della sezione
script:dello stage andrà aggiunto il comando per lanciare il builderkaniko:
/kaniko/executor --force --cache=${KANIKO_CACHE} \
--cache-ttl=24h --cache-repo kaniko_cache_registry:443/kaniko_cache \
--context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/[path del Dockerfile nel progetto] \
--destination <nome dell\'immagine da pushare> \
--build-arg <parametro opzionale per aggiungere le variabili di ambiante durante la build>
Di seguito un esempio di uno stage di build modificato per utilizzare kaniko invece di docker build:
stage: publish-image
only:
- /^v.*$/
+ image:
+ name: docker.repo.localmonks.net/kaniko:v0.17.1-monk1
+ entrypoint: [""]
tags:
- - dockerpublish
+ - kanikopublish
when: manual
script:
- - docker image build . --tag docker.repo.localmonks.net/windy/webclient:${CI_COMMIT_TAG#v}-svil --build-arg BUILD_MODE=svil
- - docker image push docker.repo.localmonks.net/windy/webclient:${CI_COMMIT_TAG#v}-svil
+ - "/kaniko/executor --force --cache=${KANIKO_CACHE} --cache-ttl=24h --cache-repo kaniko_cache_registry:443/kaniko_cache
+ --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile
+ --destination docker.repo.localmonks.net/windy/webclient:${CI_COMMIT_TAG#v}-svil
+ --build-arg BUILD_MODE=svil"