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_CACHE`` all’interno del progetto. La variabile ``KANIKO_CACHE`` può 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 ``kanikopublish`` - Successivamente lo stage deve utilizzare l’immagine di kaniko ``docker.repo.localmonks.net/kaniko:v0.17.1-monk1`` - L’\ **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 builder ``kaniko``: .. code:: sh /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 \ --build-arg Di seguito un esempio di uno stage di build modificato per utilizzare kaniko invece di docker build: .. code:: diff 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"