diff --git a/drone/BuildImageWithKaniko.yml b/drone/BuildImageWithKaniko.yml new file mode 100644 index 0000000..8b63f0e --- /dev/null +++ b/drone/BuildImageWithKaniko.yml @@ -0,0 +1,61 @@ + +.BuildImageWithKaniko: &BuildImageWithKaniko + name: BuildImageWithKaniko + image: gcr.io/kaniko-project/executor:debug + + environment: + KANIKO_ARGS: "" + TAG_COMMIT_ENABLE: "true" + TAG_COMMIT_PREFIX: "commit-" + TAG_REF_SLUG_ENABLE: "false" + TAG_REF_NORMALIZED_ENABLE: "true" + DOCKERFILE: "$CI_PROJECT_DIR/Dockerfile" + CONTEXT_DIR: "$CI_PROJECT_DIR" + ADDITIONAL_REGISTRY_DESTINATIONS: "" + ADD_GITEA_REGISTRY_AUTH: "true" + + commands: + # add gitlab registry auth + - | + if [[ "$ADD_GITEA_REGISTRY_AUTH" == "true" ]]; then + mkdir -p /kaniko/.docker + echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$(echo -n $CI_REGISTRY_USER:${CI_REGISTRY_PASSWORD} | base64)\"}}}" > /kaniko/.docker/config.json + fi + + - IMAGE_DESTS="" + + # default tag based on commit + - | + if [[ "$TAG_COMMIT_ENABLE" == "true" ]]; then + IMAGE_DESTS="$IMAGE_DESTS --destination $CI_REGISTRY_IMAGE:${TAG_COMMIT_PREFIX}${CI_COMMIT_SHA}" + fi + + # add tag for reference if available using slug + - | + if [[ "$TAG_REF_SLUG_ENABLE" == "true" ]] && [[ ! -z $CI_COMMIT_REF_NAME ]]; then + IMAGE_DESTS="$IMAGE_DESTS --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" + fi + + # add tag for reference if available using normalization + - | + if [[ "$TAG_REF_NORMALIZED_ENABLE" == "true" ]] && [[ ! -z $CI_COMMIT_REF_NAME ]]; then + REF_TAG_NORMALIZED=$(echo $CI_COMMIT_REF_NAME | sed s:/:-:g) + IMAGE_DESTS="$IMAGE_DESTS --destination $CI_REGISTRY_IMAGE:$REF_TAG_NORMALIZED" + fi + + - | + if [[ -z "$KANIKO_ARGS" ]]; then + KANIKO_ARGS="" + fi + KANIKO_ARGS="$KANIKO_ARGS --context $CONTEXT_DIR --dockerfile $DOCKERFILE" + + if [[ "KANIKO_SINGLE_SNAPSHOT" ]]; then + KANIKO_ARGS="$KANIKO_ARGS --single-snapshot" + fi + + # build image + - | + echo "kaniko args: $KANIKO_ARGS" + echo "pushing to destinations: $IMAGE_DESTS" + echo "pushing to additional destinations: $ADDITIONAL_REGISTRY_DESTINATIONS" + /kaniko/executor $KANIKO_ARGS $IMAGE_DESTS $ADDITIONAL_REGISTRY_DESTINATIONS \ No newline at end of file