Add a docker restart to machine provisioning
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