You have to execute the command from the root folder of your git repository/project:

 $ ls -a
 ./
 ../
 .git/
 .gitignore
 .gitlab-ci.yml
 Makefile

 $ gitlab-runner exec docker <job_name>

You are using docker commands which you shouldn't as gitlab-runner already uses those under the hood. See $ gitlab-runner exec docker --help for more info on the command.

Answer from 13013SwagR on Stack Overflow
🌐
GitLab
docs.gitlab.com › gitlab docs › administer › administer gitlab runner › runner executors › docker
Docker executor | GitLab Docs
The Docker executor supports the following configurations. For known issues and additional requirements of Windows configurations, see Use Windows containers. ... GitLab Runner uses Docker Engine API v1.25 to talk to the Docker Engine. This means the minimum supported version of Docker on a ...
Top answer
1 of 2
2

You have to execute the command from the root folder of your git repository/project:

 $ ls -a
 ./
 ../
 .git/
 .gitignore
 .gitlab-ci.yml
 Makefile

 $ gitlab-runner exec docker <job_name>

You are using docker commands which you shouldn't as gitlab-runner already uses those under the hood. See $ gitlab-runner exec docker --help for more info on the command.

2 of 2
0

I also came across a similar issue when using VS Code with remote containers and Docker Desktop (WSL2).

I debugged the problem by adding in a --pre-get-sources-script=ls -l "repo_directory", i.e. in the OP's case:

# docker run --name=runner --privileged -t --rm \
 -v /var/run/docker.sock:/var/run/docker.sock  \
 -v /tmp/.gitlab-runner/:/etc/gitlab-runner \
 -v {PWD} \
 --workdir $PWD \
 --pre-get-sources-script=ls -l /home/fox/Work/docker/core-application/../.git/modules/core-application \
 gitlab/gitlab-runner exec docker \
  --builds-dir /tmp/builds/ Rspec

In my case, the directory listing (ls -l ...) came up empty! I'm assuming that it mounts the directory as a volume within the container as the same name (/fubar:/fubar), which in my case isn't going to work as it is Docker Desktop with vscode remote containers.

My fix was was to add my named volume as a parameter to a secondary directory, and then setting the --clone-url to point to that directory.

Something like:

# pwd
/workspace/fubar
# gitlab-runner --debug exec docker \
  --docker-volumes vscode-workspace:/workspace2 \
  --clone-url=file:///workspace2/fubar \
  validate;
[output truncated]
...
Starting container 3d49d8e8b977177f34beeae3ae5f09eba288332e109ad79f133e0f160377908b ...  job=1 project=0
Fetching changes...
Initialized empty Git repository in /builds/project-0/.git/
Created fresh repository.
Checking out d1a39a4d as detached HEAD (ref is feature/FU-123)...

Skipping Git submodules setup
Executing build stage                               build_stage=restore_cache job=1 project=0
Skipping stage (nothing to do)                      build_stage=restore_cache job=1 project=0
Executing build stage                               build_stage=download_artifacts job=1 project=0
Skipping stage (nothing to do)                      build_stage=download_artifacts job=1 project=0
Executing build stage                               build_stage=step_script job=1 project=0
Executing "step_script" stage of the job script
...

I had originally tried changing the --pre-get-sources-script to be cp -R /workspace2/fubar /workspace/ but that complained that the target directory was read-only. Using the --clone-url=file:///workspace2/fubar worked, so I've left it that way.

Discussions

How to use gitlab-runner exec docker correclty - GitLab CI/CD - GitLab Forum
Here is what I did Installed gitlab-runner on my local machine. sudo gitlab-runner exec docker --docker-privileged --builds-dir /tmp/builds --docker-volumes /home/fox/Work/docker/core-application:/core-application Rspec This gives Runtime platform arch=amd64 os=linux pid=632331 revision=8fa89735 ... More on forum.gitlab.com
🌐 forum.gitlab.com
0
December 15, 2020
How to use the docker gitlab-runner to exec stages locally - Stack Overflow
I have setup a gitlab runner in docker on my local machine. It all is working fine. When the pipeline starts, the runner seems to handle the workload But, I would like to do this locally. For examp... More on stackoverflow.com
🌐 stackoverflow.com
Trouble using gitlab-runner exec docker - How to Use GitLab - GitLab Forum
I’m trying to create a Docker image for my build environment, and run a build locally by using gitlab-runner exec. Could someone please clarify for a n00b what concept I’ve gotten wrong? My Docker image, named hughw/factordev:latest, is base Ubuntu 16.04, plus some libraries my build requires. More on forum.gitlab.com
🌐 forum.gitlab.com
0
October 30, 2017
How does gitlab-runner create a docker container exactly?
I’d need to understand how does gitlab-runner create the docker container using the docker executor. I am asking because my CI image contains systemd as ENTRYPOINT, and starting it manually with docker run produces a correct initialization and the systemd “boot” process ends up with ... More on forum.gitlab.com
🌐 forum.gitlab.com
4
0
September 19, 2022
🌐
Medium
medium.com › @BuildWithLal › dockerized-gitlab-ci-register-docker-executor-as-a-gitlab-runner-71799352c9ac
Dockerized GitLab CI: Register Docker Executor as a GitLab Runner | by Lal Zada | Medium
October 10, 2024 - When we want to execute a job using docker, GitLab Runner can create a container on our host machine using this docker.sock file, run the job and then terminate once the job is done.
🌐
GitHub
gist.github.com › DrPsychick › b92c2653c1132c3be6da2c3bb42905d4
Run gitlab-ci jobs locally · GitHub
mount the certs: exec docker --docker-volumes "/certs/client" docker run --rm --name gitlab-runner -w $PWD \ -v $PWD:$PWD -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:latest exec docker <job>
🌐
GitLab
forum.gitlab.com › gitlab ci/cd
How to use gitlab-runner exec docker correclty - GitLab CI/CD - GitLab Forum
December 15, 2020 - Here is what I did Installed gitlab-runner on my local machine. sudo gitlab-runner exec docker --docker-privileged --builds-dir /tmp/builds --docker-volumes /home/fox/Work/docker/core-application:/core-application Rspec This gives Runtime platform ...
Find elsewhere
🌐
Datawookie
datawookie.dev › blog › 2021 › 03 › install-gitlab-runner-with-docker
Install GitLab Runner with Docker – datawookie
March 21, 2021 - The GitLab Runner client can be used to manage the active runners. To get a list of available commands use the --help argument. docker exec -it gitlab-runner gitlab-runner --help
🌐
GitLab
docs.gitlab.com › gitlab docs › install › configure gitlab runner › commands
GitLab Runner commands | GitLab Docs
gitlab-runner run-single -u http://gitlab.example.com -t my-runner-token --executor docker --docker-image ruby:3.3
🌐
GitLab
gitlab.com › gitlab.org › gitlab-runner › #4275
How to use exec command with the dockerized version of gitlab-runner (#4275) · Issues · GitLab.org / gitlab-runner · GitLab
Summary Trying to debug a failing gitlab ci job by using the docker gitlab-runner exec functionality. But it fails right away...
🌐
LinkedIn
linkedin.com › pulse › how-execute-gitlab-ci-docker-your-local-machine-shubham-takode
How to execute GitLab CI with Docker on your local machine.
February 25, 2022 - #Go to your project directory and run (make sure there is gitlab-ci.yml) $sudo gitlab-runner exec docker build #where build is the stage from your .gitlab-ci.yml you want to execute
🌐
GitLab
gitlab.com › gitlab.org › gitlab-runner › #3295
Use local docker images with gitlab-runner exec docker (#3295) · Issues · GitLab.org / gitlab-runner · GitLab
I would like to debug my build locally but I would like to avoid having to build the docker image once again (I have it locally to develop, but I would have to build it again for gitlab-runner). In order to do so, I'm mounting a volume of the Docker socket file and passing it to the docker executor, but docker can't see my images (in my `test` stage, I have a `docker images` to see what is available): ```sh $ docker run --rm -it -v "$PWD":"$PWD" --workdir "$PWD" -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:alpine-v10.7.1 exec docker --docker-privileged --docker-pull-policy if-not-present --docker-volumes /var/run/docker.sock:/var/run/docker.sock test WARNING: You most probably have uncommitted changes.
🌐
GitLab
docs.gitlab.com › gitlab docs › use gitlab › use ci/cd to build your application › jobs › docker › use docker to build docker images
Use Docker to build Docker images | GitLab Docs
May 8, 2023 - To mount /var/run/docker.sock while registering your runner, include the following options: sudo gitlab-runner register \ --non-interactive \ --url "https://gitlab.com/" \ --registration-token REGISTRATION_TOKEN \ --executor "docker" \ --description "docker-runner" \ --tag-list "socket-binding-docker-runner" \ --docker-image "docker:24.0.5-cli" \ --docker-volumes "/var/run/docker.sock:/var/run/docker.sock"
🌐
GitLab
gitlab.com › gitlab.org › gitlab-runner › merge requests › !1026
Add documentation how to exec docker locally in privileged mode (!1026) · Merge requests · GitLab.org / gitlab-runner · GitLab
December 15, 2020 - This is just an update for gitlab-runner documentation on adding --docker-privileged flag to gitlab-runner exec docker <jobname> command when services are used, which would result in following error if not provided:
🌐
GitLab
forum.gitlab.com › how to use gitlab
Trouble using gitlab-runner exec docker - How to Use GitLab - GitLab Forum
October 30, 2017 - I’m trying to create a Docker image for my build environment, and run a build locally by using gitlab-runner exec. Could someone please clarify for a n00b what concept I’ve gotten wrong? My Docker image, named hughw/factordev:latest, is base Ubuntu 16.04, plus some libraries my build requires.
🌐
GitHub
gist.github.com › NikiforovAll › 7294ce1a72bdcfbf4159896853589b9f
GitLab Runner + Docker · GitHub
docker exec -it -w $PWD gitlab-runner gitlab-runner exec docker --env "KEY=VALUE"
🌐
GitLab
docs.gitlab.com › gitlab docs › administer › administer gitlab runner
GitLab Runner | GitLab Docs
Executor: The method GitLab Runner uses to execute jobs (Docker, Shell, Kubernetes, etc.).
🌐
GitLab
forum.gitlab.com › gitlab ci/cd
How does gitlab-runner create a docker container exactly? - GitLab CI/CD - GitLab Forum
September 19, 2022 - I’d need to understand how does gitlab-runner create the docker container using the docker executor. I am asking because my CI image contains systemd as ENTRYPOINT, and starting it manually with docker run produces a correct initialization and the systemd “boot” process ends up with ...
🌐
TestDriven.io
testdriven.io › blog › gitlab-ci-docker
Deploying Self-Hosted GitLab CI Runners with Docker | TestDriven.io
October 29, 2021 - Before we update the concurrency options, add a new runner: $ docker-compose exec gitlab-runner-container \ gitlab-runner register \ --non-interactive \ --url <YOUR-GITLAB-URL> \ --registration-token <YOUR-GITLAB-REGISTRATION-TOKEN> \ --executor docker \ --description "Sample Runner 2" \ --docker-image "docker:stable" \ --docker-volumes /var/run/docker.sock:/var/run/docker.sock