I was struggling for hours in order to have a full gitlab ci/cd-> docker-compose runner configuration up and running with no luck till now. At a certain point it was clear to me that i needed to configure a dind service for my docker runner but i was unable to make it work correctly. Now i ran you… Answer from A77ILA on forum.gitlab.com
🌐
GitLab
forum.gitlab.com › gitlab ci/cd
Example GitLab Runner docker compose configuration - GitLab CI/CD - GitLab Forum
March 26, 2022 - After having spent some time the other day to redo my (“standalone”) runner setup, I figured that I would share this for the benefit of the community. .env: RUNNER_NAME=RUNNER-NAME REGISTRATION_TOKEN=TOKEN CI_SERVER_URL=https://gitlab.com/ docker-compose.yml: version: "3.5" services: dind: image: docker:20-dind restart: always privileged: true environment: DOCKER_TLS_CERTDIR: "" command: - --storage-driver=overlay2 runner: restart: always image:...
🌐
DEV Community
dev.to › teetoflame › setting-up-a-gitlab-server-community-edition-and-a-gitlab-runner-using-docker-compose-ob6
Setting Up a GitLab Server (Community Edition) and a GitLab Runner Using Docker Compose - DEV Community
February 20, 2025 - Set up a Docker-based GitLab and a GitLab Runner using Docker Compose to create a CI/CD environment. Services will be defined in the docker-compose.yml file, configuring storage, exposing GitLab on a local port, and registering the GitLab Runner ...
Discussions

Gitlab Runner can execute jobs with specified docker-compose files in series, but not concurrently (Solved, it totally can)
The question: We’re trying to become more modern with our CI/CD, and as part of that, I’ve recently re-worked the testing for one of our applications to use docker compose; It’s a ruby app with a test suite that takes about 15 minutes to run, and sometimes if Selenium is having a sleepy ... More on forum.gitlab.com
🌐 forum.gitlab.com
1
0
November 14, 2023
How to use docker-compose.yml file in GitLab Runner server?
Hello, I would be grateful if someone could clarify something for me. I have two servers: GitLab Server: Repositories GitLab Runner: Runner + Docker On my GitLab server I have created a project with some code. In the root directory of my project, I have placed two files, .gitlab-ci.yml and ... More on forum.gitlab.com
🌐 forum.gitlab.com
3
0
April 22, 2024
How to connect a gitlab-runner with a gitlab service via docker-compose?
Describe your question in as much detail as possible: I have the following docker-compose file: version: "3.8" services: gitlab: image: gitlab/gitlab-ce:16.2.3-ce.0 container_name: gitlab hostname: 'gitlab' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab' ports: - '80:80' ... More on forum.gitlab.com
🌐 forum.gitlab.com
6
0
August 11, 2023
Use gitlab-runner with docker-compose
Why would your docker-compose.yml not be in the repo?! At the same time, I don’t know if having the gitlab runner launch services in this way is a great idea. You’re mixing deployment and build. More on reddit.com
🌐 r/gitlab
4
1
April 14, 2020
🌐
Medium
medium.com › @BuildWithLal › dockerized-gitlab-ci-setting-up-and-connecting-your-gitlab-runner-b810a02e42f2
Dockerized GitLab CI: Setting Up and Connecting Your GitLab Runner | by Lal Zada | Medium
October 10, 2024 - We are setting network_mode to host for the GitLab runner container which will put the GitLab runner container on the host machine’s network so GitLab server can communicate with it through localhost instead of using its container name (container ID can change everytime we recreate containers). After updating the docker-compose.yml file, hit CTRL+C to stop the running container and then run
🌐
GitLab
forum.gitlab.com › gitlab ci/cd
Gitlab Runner can execute jobs with specified docker-compose files in series, but not concurrently (Solved, it totally can) - GitLab CI/CD - GitLab Forum
November 14, 2023 - The question: We’re trying to become more modern with our CI/CD, and as part of that, I’ve recently re-worked the testing for one of our applications to use docker compose; It’s a ruby app with a test suite that takes about 15 minutes to run, and sometimes if Selenium is having a sleepy day, a test fails transitively and the whole rspec needs to be re-run.
🌐
GitHub
gist.github.com › benoitpetit › cbe19cdd369ec8c1e0defd245d91751f
complete Gitlab installation and a runner with docker · GitHub
Thanks! :-) I found an auto register version for the runner for inspiration of your work and this combined might be helpful for those passing by: https://gitlab.com/TyIsI/gitlab-runner-docker-compose/-/blob/main/docker-compose.yml?ref_type=heads
🌐
GitLab
docs.gitlab.com › gitlab docs › install › install gitlab runner › docker
Run GitLab Runner in a container | GitLab Docs
To use your local system for the configuration volume and other resources mounted into the gitlab-runner container: Optional. In MacOS systems, /srv does not exist by default. Create /private/srv, or another private directory, for setup. ... docker run -d --name gitlab-runner --restart always \ -v /srv/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:latest
🌐
GitLab
forum.gitlab.com › gitlab ci/cd
How to use docker-compose.yml file in GitLab Runner server? - GitLab CI/CD - GitLab Forum
April 22, 2024 - Hello, I would be grateful if someone could clarify something for me. I have two servers: GitLab Server: Repositories GitLab Runner: Runner + Docker On my GitLab server I have created a project with some code. In the root directory of my project, I have placed two files, .gitlab-ci.yml and ...
Find elsewhere
🌐
DEV Community
dev.to › boiledsteak › how-to-set-up-on-prem-gitlab-vcs-gitlab-cicd-gitlab-runner-with-docker-3b5c
How to set up on-prem Gitlab VCS, Gitlab CI/CD, Gitlab Runner, with Docker - DEV Community
November 15, 2023 - Next, in a separate directory, create another docker-compose.yml · version: '3.6' services: gitlab-runner: container_name: gitlab-runner restart: always stdin_open: true tty: true command: register volumes: - '/srv/gitlab-runner/config:/etc/gitlab-runner' - '/var/run/docker.sock:/var/run/docker.sock' image: 'gitlab/gitlab-runner:latest' ports: - '81:80' - '8094:8093'
🌐
TestDriven.io
testdriven.io › blog › gitlab-ci-docker
Deploying Self-Hosted GitLab CI Runners with Docker | TestDriven.io
October 29, 2021 - $ 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 1" \ --docker-image "docker:stable" \ --docker-volumes /var/run/docker.sock:/var/run/docker.sock
🌐
Medium
medium.com › bestsecret-tech › gitlab-runner-with-docker-compose-in-windows-9d19dcc04763
GitLab Runner with Docker Compose in Windows | by Pablo Caballero | BESTSECRET Tech | Medium
July 25, 2022 - ... Warning: Docker Desktop should be running in background, otherwise all docker commands will fail. 4 For the next steps we need some information. In GitLab, go to your project and then in left menu: Settings > CI/CD > Runners > Specific runners
🌐
GitHub
github.com › soerenmetje › docker-gitlab-runner › blob › master › docker-compose.yml
docker-gitlab-runner/docker-compose.yml at master · soerenmetje/docker-gitlab-runner
- "./config:/etc/gitlab-runner" - "/var/run/docker.sock:/var/run/docker.sock" · networks: default: driver: bridge · driver_opts: # Fix tls handshake error on Openstack VMs - may need to decrease MTU in your case if error persist ·
Author: soerenmetje
🌐
GitLab
forum.gitlab.com › gitlab ci/cd
How to connect a gitlab-runner with a gitlab service via docker-compose? - GitLab CI/CD - GitLab Forum
August 11, 2023 - Describe your question in as much detail as possible: I have the following docker-compose file: version: "3.8" services: gitlab: image: gitlab/gitlab-ce:16.2.3-ce.0 container_name: gitlab hostname: 'gitlab' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab' ports: - '80:80' - '443:443' - '22:22' volumes: - gitlab_config:/etc/gitlab - gitlab_logs:/var/log/gitlab - gitlab_data:/var/opt/gitlab networ...
🌐
TechOverflow
techoverflow.net › 2021 › 01 › 12 › how-to-install-gitlab-runner-using-docker-compose
How to install gitlab-runner using docker-compose | TechOverflow
July 15, 2026 - gitlab-runner: image: 'gitlab/gitlab-runner:latest' volumes: - /var/run/docker.sock:/var/run/docker.sock - ./config:/etc/gitlab-runner restart: unless-stopped
🌐
DevOps in the clouds
czerniga.it › strona główna › how to install gitlab using docker compose?
How to install GitLab using Docker Compose?
September 26, 2022 - To use the GitLab runner in GitLab, you need to configure it. For correct configuration, we will need a token copied from the portal. To do this, go to the address: http://localhost:8080/admin/runners and click the Copy token button.
🌐
Medium
medium.com › @ggluopeihai › setting-up-gitlab-and-gitlab-runner-with-docker-a-complete-guide-a49b9d374ef2
Setting Up GitLab and GitLab Runner with Docker: A Complete Guide | by Neo Luo | Medium
October 12, 2024 - Create a project name: cicd-test, create: docker-compose.yml in the root directory, configure gitlab and gitlab-runner through docker-compose, and the corresponding configuration
🌐
Reddit
reddit.com › r/gitlab › use gitlab-runner with docker-compose
r/gitlab on Reddit: Use gitlab-runner with docker-compose
April 14, 2020 -

I’ve just started using gitlab runners, and I’m stuck in a point related to running docker-compose.

I don’t know if my approach ie correct, but I have a docker-compose file that runs multiple docker images on my system, and I want the gitlab runner to pull the code and run the docker-compose.yml file on the host once I push my changes to the repo.

The docker-compose.yml file is not included in the repo. I think that might be the problem, if it is, is there anyway to make the runner use the host’s docker-compose that is already running?

Thank you in advance.

🌐
JamesCoyle.net
jamescoyle.net › home › docker compose yml for gitlab and gitlab runner
Docker Compose yml for Gitlab and Gitlab Runner | JamesCoyle.net Limited
November 1, 2019 - version: '3.5' services: gitlab: image: gitlab/gitlab-ce:latest hostname: www.jamescoyle.net restart: unless-stopped environment: GITLAB_OMNIBUS_CONFIG: | gitlab_rails['gitlab_shell_ssh_port'] = 8822 ports: - "8000:80" - "8822:22" volumes: - ./config/gitlab:/etc/gitlab - ./data/gitlab:/var/opt/gitlab - ./logs:/var/log/gitlab networks: - gitlab gitlab-runner: image: gitlab/gitlab-runner:alpine restart: unless-stopped depends_on: - gitlab volumes: - ./config/gitlab-runner:/etc/gitlab-runner - /var/run/docker.sock:/var/run/docker.sock networks: - gitlab networks: gitlab: Create a new directory and save the above file inside it as docker-compose.yml.
Starred by 34 users
Forked by 6 users
Languages: Dockerfile
Top answer
1 of 11
120

EDIT (2023): Do not keep using docker-compose! Please migrate to docker compose, which is now part of the docker image and a 99% drop-in replacement of docker-compose. Ironically, if you (now) use docker:latest, the question does not apply. See Docker's documentation on Compose V2. The answer below only applies to docker-compose, AKA Compose V1, which is to be discontinued/become unsupported.


Docker also provides an official docker-compose image: docker/compose

This is the ideal solution if you don't want to install it every pipeline.

Note that in the latest version of GitLab CI/Docker you will likely need to give privileged access to your GitLab CI Runner and configure/disable TLS. See Use docker-in-docker workflow with Docker executor

variables:
  DOCKER_HOST: tcp://docker:2375/
  DOCKER_DRIVER: overlay2

# Official docker compose image.
image:
  name: docker/compose:latest

services:
  - docker:dind

before_script:
  - docker version
  - docker-compose version

build:
  stage: build
  script:
    - docker-compose down
    - docker-compose build
    - docker-compose up tester-image

Note that in versions of docker-compose earlier than 1.25:

Since the image uses docker-compose-entrypoint.sh as entrypoint you'll need to override it back to /bin/sh -c in your .gitlab-ci.yml. Otherwise your pipeline will fail with No such command: sh

    image:
      name: docker/compose:latest
      entrypoint: ["/bin/sh", "-c"]
2 of 11
99

Following the official documentation:

# .gitlab-ci.yml
image: docker
services:
  - docker:dind    
build:
  script:
    - apk add --no-cache docker-compose
    - docker-compose up -d

Sample docker-compose.yml:

version: "3.7"
services:
  foo:
    image: alpine
    command: sleep 3
  bar:
    image: alpine
    command: sleep 3

We personally do not follow this flow anymore, because you loose control about the running containers and they might end up running endless. This is because of the docker-in-docker executor. We developed a python-script as a workaround to kill all old containers in our CI, which can be found here. But I do not suggest to start containers like this anymore.

🌐
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 - On the server where GitLab Runner is installed, install Docker Engine. View a list of supported platforms. ... default: before_script: - docker info build_image: script: - docker build -t my-docker-image . - docker run my-docker-image /script/to/run/tests · You can now use docker commands (and install Docker Compose if needed).