diff --git a/tasks/docker-registry/task.yaml b/tasks/docker-registry/task.yaml index 71d3f9c..e7b55d4 100644 --- a/tasks/docker-registry/task.yaml +++ b/tasks/docker-registry/task.yaml @@ -39,39 +39,38 @@ spec: description: Final pushed image URL with tag (e.g. registry/app:v0.2.0) steps: - - name: build-and-push + - name: write-docker-config + image: alpine:3.18 + workingDir: /workspace/source + script: | + #!/bin/sh + set -e + + if [ -n "$(params.subdirectory)" ]; then + cd "$(params.subdirectory)" + fi + + IMAGE="$(params.imageName):$(params.tag)" + USERNAME=$(cat /workspace/docker-auth/username) + PASSWORD=$(cat /workspace/docker-auth/password) + REGISTRY=$(echo "$IMAGE" | cut -d/ -f1) + + echo "🔐 Creating Docker config for $REGISTRY..." + mkdir -p /tekton/home/.docker + echo "{\"auths\": {\"$REGISTRY\": {\"auth\": \"$(echo -n "$USERNAME:$PASSWORD" | base64)\"}}}" \ + > /tekton/home/.docker/config.json + + - name: kaniko-build image: gcr.io/kaniko-project/executor:v1.23.2 workingDir: /workspace/source env: - name: DOCKER_CONFIG value: /tekton/home/.docker args: - - > - echo "📦 Using image: $(params.imageName):$(params.tag)" && - - USERNAME=$(cat /workspace/docker-auth/username) && - PASSWORD=$(cat /workspace/docker-auth/password) && - REGISTRY=$(echo "$(params.imageName)" | cut -d/ -f1) && - - echo "🔐 Creating Docker config..." && - mkdir -p /tekton/home/.docker && - echo '{ - "auths": { - "'$REGISTRY'": { - "username": "'$USERNAME'", - "password": "'$PASSWORD'", - "auth": "'$(echo -n $USERNAME:$PASSWORD | base64)'" - } - } - }' > /tekton/home/.docker/config.json && - - /kaniko/executor \ - --dockerfile=$(params.dockerfile) \ - --context=$(params.context) \ - --destination="$(params.imageName):$(params.tag)" \ - --skip-tls-verify \ - --reproducible \ - --verbosity=info && - - echo -n "$(params.imageName):$(params.tag)" > /tekton/results/imageUrl + - --dockerfile=$(params.dockerfile) + - --context=$(params.context) + - --destination=$(params.imageName):$(params.tag) + - --skip-tls-verify + - --reproducible + - --verbosity=info