По моему опыту с бегунами docker, наиболее вероятная ситуация состоит в том, что бегун docker не имеет включенных экспериментальных функций только потому, что они есть в базе docker ... Я испытал подобные вещи в прошлое: docker в раннере НЕ ЯВЛЯЕТСЯ docker там, где вы размещаете бегун в!
Вероятно, вам придется добавить службу DIND (Docker в Docker) для этого, потому что насколько я понимаю в этой системе бегуна, только тогда docker с вашего хоста подключается к docker внутри бегуна.
Мы сделали это вот так:
# gitlab-runner
gitlab-runner:
container_name: vivavis.gitlab-runner
image: gitlab/gitlab-runner:latest
restart: always
volumes:
- gitlab-runner:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock // <<<<<< THIS IS THE IMPORTANT LINE
networks:
- swp-infra-code
Небольшое предупреждение здесь:
При активации мы обнаружили ошибку / не очень хорошо очищенную вещь: поскольку GitLab Runner теперь связан с базой docker, изображения, которые будут созданы во время работы CI / CD не удаляются должным образом: GitLab не реализовал эту функцию, он просто предполагает, что когда умирает контейнер gitlab-runner, все данные умирают внутри. Но при таком подключении данные здесь не умирают, потому что они не создаются в контейнере - они создаются в базе docker.