Skip to content

Add a docker restart to machine provisioning

Daniel Diniz requested to merge dnldnz-docker-machine-restart into main

NOTE THAT THIS FORK IS MAINTAINED FOR CRITICAL BUG FIXES AFFECTING RUNNING COSTS ONLY. NO OTHER CONTRIBUTIONS WILL BE ACCEPTED.

What critical bug this MR is fixing?

We've had several reports of jobs failing because the Docker daemon is not listening during pipeline execution:

Error creating machine: Error running provisioning: Unable to verify the Docker daemon is listening:
Maximum number of retries (10) exceeded

and

Cannot connect to the Docker daemon at tcp://172.40.3.238:2376. Is the docker daemon running? (manager.go:203:0s)

A restart of the service seems to make sure that things are ready for CI/CD execution.

How does this change help reduce cost of usage? What scale of cost reduction is it?

This reduces the amount of failed job runs, and with that decreases general wasted shared runner resources consumption.

In what scenarios is this change usable with GitLab Runner's docker+machine executor?

This change affects all scenarios involving images which somehow do not interact well with what docker-machine does during provisioning.

Edited by Daniel Diniz

Merge request reports