.docker_login: &docker-login
    - mkdir -p $HOME/.docker
    - echo "{\"auths\":{\"$REGISTRY\":{\"auth\":\"$(printf "%s:%s" "$REGISTRY_USER" "$REGISTRY_PASSWORD" | base64 | tr -d '\n')\"}}}" > $HOME/.docker/config.json

.kaniko_build: &kaniko-build
  - /kaniko/executor --context "$CONTEXT_PATH" --dockerfile "$DOCKERFILE_PATH" --destination "$DESTINATION" --cache=true

.docker_retag: &docker-retag
  - docker pull $SOURCE_IMAGE
  - docker tag $SOURCE_IMAGE $TARGET_IAMGE
  - docker push $TARGET_IAMGE
     



.kaniko_build: 
  stage: build
  image: 
    name: gcr.io/kaniko-project/executor:debug
    entrypoint: [""]
  variables:
    COMMIT_REF_NAME: test
    CONTEXT_PATH: ${CI_PROJECT_DIR}
    DOCKERFILE_PATH: ${CI_PROJECT_DIR}/Dockerfile
    DESTINATION: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}
    REGISTRY: $CI_REGISTRY
    REGISTRY_USER: $CI_REGISTRY_USER
    REGISTRY_PASSWORD: $CI_REGISTRY_PASSWORD
  services:
    - ${DOCKER_IMAGE_DIND}
  script:
    - *docker-login
    - *kaniko-build
  tags:
    - docker

.docker-retag:
  stage: retag
  image: ${DOCKER_IMAGE}
  variables:
    REGISTRY: $CI_REGISTRY
    REGISTRY_USER: $CI_REGISTRY_USER
    REGISTRY_PASSWORD: $CI_REGISTRY_PASSWORD
    SOURCE_IMAGE:
    TARGET_IAMGE:
  services:
    - ${DOCKER_IMAGE_DIND}
  script:
    - *docker-login
    - *docker-retag
