GitLab runner checkout in same folder

I try to run different environments with the same runner as shell executor with docker run commands. The project dir get mount when the docker container starts. When I run a new job for a different environment both environments have the same code afterward. That is because the gitlab runner does a checkout in the same CI_PROJECT_DIR folder (something like /home/gitlab-runner/builds/abc12345/0/abc/def/).

stages:
  - deploy

variables:
  DATABASE_CONTAINER_NAME: ${CI_COMMIT_REF_NAME}_stage_database
  WORDPRESS_CONTAINER_NAME: ${CI_COMMIT_REF_NAME}_stage_wordpress
  GIT_SSL_NO_VERIFY: 'true'

deploy_stage:
  stage: deploy
  variables:
    MYSQL_ROOT_PASSWORD: root
    MYSQL_DATABASE: wordpress
    WORDPRESS_DB_HOST: db:3306
    WORDPRESS_DB_USER: root
    WORDPRESS_DB_PASSWORD: wordpress
    WORDPRESS_DEBUG: 1
  script:
    - docker stop ${WORDPRESS_CONTAINER_NAME} || echo "No Container found to stop"
    - docker rm ${WORDPRESS_CONTAINER_NAME} || echo "No Container found to remove"
    - docker run -d --name ${DATABASE_CONTAINER_NAME} -e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} -e MYSQL_DATABASE=${MYSQL_DATABASE} mysql || echo "Database already started"
    - docker run -d --name ${WORDPRESS_CONTAINER_NAME} --link ${DATABASE_CONTAINER_NAME}:db -p $CI_JOB_ID:80 -v ${CI_PROJECT_DIR}/my-plugin:/var/www/html/wp-content/plugins/my-plugin -e VIRTUAL_HOST=${CI_COMMIT_REF_NAME}.local.host -e WORDPRESS_DB_HOST=${WORDPRESS_DB_HOST} -e WORDPRESS_DB_USER=${WORDPRESS_DB_USER} -e WORDPRESS_DB_PASSWORD=${MYSQL_ROOT_PASSWORD} wordpress
  environment:
    name: review/$CI_COMMIT_REF_NAME
    url: http://${CI_COMMIT_REF_NAME}.local.host
    on_stop: stop_stage
  tags:
    - shell
  dependencies:
    - prefill_cache
  except:
    - master

stop_stage:
  stage: deploy
  variables:
    GIT_STRATEGY: none
  script:
    - docker stop ${DATABASE_CONTAINER_NAME} ${WORDPRESS_CONTAINER_NAME}
    - docker rm ${DATABASE_CONTAINER_NAME} ${WORDPRESS_CONTAINER_NAME}
  when: manual
  environment:
    name: review/$CI_COMMIT_REF_NAME
    action: stop
  tags:
    - shell

Expected behavior
Normally I would expect that each environment has its own checkout folder or at least each job and not that each job is checkout in the same folder.