Automatic release using gitlab-runner and docker

default:
  image: docker:24.0.7
  services:
    - docker:24.0.7-dind
  before_script:
    - docker info

variables:
  DOCKER_TLS_CERTDIR: "/certs"

stages:
  - build
  - release

build:
  stage: build
  script:
    - if [ "$CI_COMMIT_TAG" = "stable" ]; then
        TAG="stable";
      else
        TAG="";
      fi
    - docker buildx build -t my-docker-image --platform linux/arm64 . --build-arg TAG=$TAG
    - container_id=$(docker run -d -t my-docker-image)
    - mkdir -p dist
    - docker cp $container_id:/app/dist ./dist
    - ls dist
    - export LAST_VERSION=$(cat version.cfg | grep VERSION | cut -d'=' -f2)
    - export NEW_VERSION=$((LAST_VERSION + 1))
    - echo "VERSION=$NEW_VERSION" > version.cfg
  artifacts:
    paths:
      - dist/
      - version.cfg

release_job:
  stage: release
  image: registry.gitlab.com/gitlab-org/release-cli:latest
  rules:
    - if: $CI_COMMIT_TAG                  # Run this job when a tag is created manually
  script:
    - echo "Running the release job."
  release:
    tag_name: $CI_COMMIT_TAG
    name: 'Release $CI_COMMIT_TAG'
    description: 'Release created using the release-cli.'

I have a yml file like this. It doesn’t give an error in any job here, it only gives an error in the last release-job job. The error is like this;

I think if there was a problem with Docker, it wouldn’t work in previous versions either. Can anyone with knowledge help?

Your issue is having docker info in default before_script which is also executed in the release_job job where is no Docker.
Move the before_script into build Job.