Commit 2ad401b7 authored by Pierre Smeyers's avatar Pierre Smeyers
Browse files

Merge branch 'fix/non-root-dotenv' into 'master'

fix: support dotenv for non-root images

See merge request to-be-continuous/docker!185
parents 00417947 996bcce0
Loading
Loading
Loading
Loading
+22 −47
Original line number Diff line number Diff line
@@ -906,7 +906,23 @@ stages:
    echo $DOCKER_METADATA $DOCKER_BUILD_ARGS "$@" | xargs /kaniko/executor ${TRACE+--verbosity debug} --context "$(docker_context_path)" --dockerfile "$DOCKER_FILE" --destination "$docker_image" ${kaniko_cache_args} $kaniko_registry_mirror_option
  }

  configure_cosign_private_key() {
  function create_dotenv_file() {
    export docker_digest=$1
    export docker_image=${2:-$DOCKER_SNAPSHOT_IMAGE}

    export docker_repository=${docker_image%:*}
    export docker_tag=${docker_image##*:}
    {
      echo "docker_image=$docker_image"
      echo "docker_image_digest=$docker_repository@$docker_digest"
      echo "docker_repository=$docker_repository"
      echo "docker_tag=$docker_tag"
      echo "docker_digest=$docker_digest"
    } > docker.env
    chmod 644 docker.env
  }

  function configure_cosign_private_key() {
    if [[ -z "${DOCKER_COSIGN_PRIVATE_KEY:-$COSIGN_PRIVATE_KEY}" ]]
    then
      fail "Cosign private key is not defined"
@@ -1104,18 +1120,7 @@ docker-kaniko-build:
  stage: package-build
  script:
    - run_build_kaniko "$DOCKER_SNAPSHOT_IMAGE" --digest-file .img-digest.txt --build-arg http_proxy="$http_proxy" --build-arg https_proxy="$https_proxy" --build-arg no_proxy="$no_proxy"
    # push docker_image in dotenv file
    - docker_digest=$(cat .img-digest.txt)
    - docker_repository=${DOCKER_SNAPSHOT_IMAGE%:*}
    - docker_tag=${DOCKER_SNAPSHOT_IMAGE##*:}
    - |
      {
        echo "docker_image=$DOCKER_SNAPSHOT_IMAGE"
        echo "docker_image_digest=$docker_repository@$docker_digest"
        echo "docker_repository=$docker_repository"
        echo "docker_tag=$docker_tag"
        echo "docker_digest=$docker_digest"
      } > docker.env
    - create_dotenv_file "$(cat .img-digest.txt)"
    - maybe_sign_image
  artifacts:
    reports:
@@ -1145,19 +1150,9 @@ docker-dind-build:
    - docker history $DOCKER_SNAPSHOT_IMAGE
    # Display the total size of the image
    - docker images --digests $DOCKER_SNAPSHOT_IMAGE
    # create dotenv file
    # Create dotenv file
    - image_with_digest=$(docker inspect --format '{{index .RepoDigests 0}}' "$DOCKER_SNAPSHOT_IMAGE")
    - docker_digest=${image_with_digest##*@}
    - docker_repository=${DOCKER_SNAPSHOT_IMAGE%:*}
    - docker_tag=${DOCKER_SNAPSHOT_IMAGE##*:}
    - |
      {
        echo "docker_image=$DOCKER_SNAPSHOT_IMAGE"
        echo "docker_image_digest=$docker_repository@$docker_digest"
        echo "docker_repository=$docker_repository"
        echo "docker_tag=$docker_tag"
        echo "docker_digest=$docker_digest"
      } > docker.env
    - create_dotenv_file "${image_with_digest##*@}"
    - maybe_sign_image
  artifacts:
    reports:
@@ -1204,18 +1199,7 @@ docker-buildah-build:
    - buildah ${TRACE+--log-level debug} $buildah_push_mode push --digestfile .img-digest.txt $DOCKER_PUSH_ARGS "$DOCKER_SNAPSHOT_IMAGE"
    # display digest of the resulting image
    - cat .img-digest.txt
    # create dotenv file
    - docker_digest=$(cat .img-digest.txt)
    - docker_repository=${DOCKER_SNAPSHOT_IMAGE%:*}
    - docker_tag=${DOCKER_SNAPSHOT_IMAGE##*:}
    - |
      {
        echo "docker_image=$DOCKER_SNAPSHOT_IMAGE"
        echo "docker_image_digest=$docker_repository@$docker_digest"
        echo "docker_repository=$docker_repository"
        echo "docker_tag=$docker_tag"
        echo "docker_digest=$docker_digest"
      } > docker.env
    - create_dotenv_file "$(cat .img-digest.txt)"
    - maybe_sign_image
  artifacts:
    reports:
@@ -1472,16 +1456,7 @@ docker-publish:
      log_info "Well done your image is pushed and can be pulled with: docker pull $DOCKER_RELEASE_IMAGE"
    # 2: extract info and generate output dotenv
    - docker_digest=$(skopeo inspect ${TRACE+--debug} --authfile "$BUILDTOOL_HOME/skopeo/.docker/dest-config.json" --format='{{ .Digest }}' "docker://$DOCKER_RELEASE_IMAGE")
    - docker_repository=${DOCKER_RELEASE_IMAGE%:*}
    - docker_tag=${DOCKER_RELEASE_IMAGE##*:}
    - |
      {
        echo "docker_image=$DOCKER_RELEASE_IMAGE"
        echo "docker_image_digest=$docker_repository@$docker_digest"
        echo "docker_repository=$docker_repository"
        echo "docker_tag=$docker_tag"
        echo "docker_digest=$docker_digest"
      } > docker.env
    - create_dotenv_file "$docker_digest" "$DOCKER_RELEASE_IMAGE"
    - publish_extra_tags
  artifacts:
    reports: