Knuckle
Knuckle

Reputation: 21

Bug Gitlab-runner restart always

I have a problem with the deployment of Gitlab-runner on my structure with Docker-compose.

I want to register my gitlab-runner automaticaly but when i start my compose, all is good, and after that, my container is destroy.

That's my compose :

`version: '3.6' services: gitlab-runner: image: gitlab/gitlab-runner:latest container_name: gitlab-runner restart: 'no' depends_on: - gitlab volumes: - /var/run/docker.sock:/var/run/docker.sock - /myrepository/gitlab-runner:/etc/gitlab-runner

command :
  - register
  - --non-interactive
  - --url=MY_GITLAB_URL
  - --registration-token=MY_TOKEN
  - --executor=docker
  - --docker-image=ruby:2.7
  - --name=myrunner
  - --docker-pull-policy=always
  - --locked=false
  - --run-untagged=false
  - --docker-privileged=false
  - --limit=0
  - --tag-list=general,test

networks:
  - gitlab

`

If i launch my runner without the "command" bloc of my docker-compose, it's ok, it stay alive and i can docker exec "gitlab-runner register" without lost my container.

If i launch my docker-compose with "command" bloc, my container will be create a new runner (i can see the runner created on my gitlab) but the container of gitlab runner is instant destroy.

Do you have any explication about that and a solution? Thanks

Upvotes: 1

Views: 450

Answers (1)

Atxulo
Atxulo

Reputation: 494

I guess that the container is destroyed as soon as the command ends, because it's the way containers work. You must have a process running inside the container if you want it to be alive.

Try something like this:

tty: true
command:
  - /bin/sh
  - -c
  - |
      register --non-interactive --url=MY_GITLAB_URL --registration-token=MY_TOKEN --executor=docker --docker-image=ruby:2.7 --name=myrunner --docker-pull-policy=always --locked=false --run-untagged=false --docker-privileged=false --limit=0 --tag-list=general,test && 
      sleep infinity

More info:

Upvotes: 0

Related Questions