Olá Ramon, tudo bem? Bem, esse problema acontece porque houve uma mudança com uma última atualização do Docker, e isso gerou muitas discussões na comunidade do GitLab, até que o próprio GitLab falou sobre isso nesse artigo aqui. A questão é que "a partir da versão 19.03, docker:dind gerará automaticamente certificados TLS e exigirá usá-los para comunicação" por isso acontece esse erro, então a solução para concluirmos o curso sem maiores problemas é usarmos uma versão especifica do Docker (docker:19.03.0
e docker:19.03.0-dind
) no lugar de usarmos somente docker:latest
e docker:dind
, a partir desse momento temos que utilizar da seguinte forma:
image: docker:19.03.0
stages:
- pre-build
- build
- test
- deploy
- notificacao
build-docker:
services:
- docker:19.03.0-dind
retry: 2
before_script:
- docker info
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD
...
<restante do código>
Esse é o primeiro passo para resolver esse erro, o segundo passo que precisamos fazer é no nosso "gitlab-runner", primeiro para o container do gitlab-runner
com o comando:
docker stop -t 0 gitlab-runner
E então precisamos ir no arquivo de configuração do nosso gitlab-runner, e essa configuração foi determinada dentro da pasta compartilhada nesse comando:
docker run -d --name gitlab-runner --restart always -v /Users/Shared/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest
Então essa é a pasta que contém o arquivo de configuração do gitlab-runner:
/Users/Shared/gitlab-runner/config
Dentro dessa pasta deve ter um arquivo com o nome config.toml
e precisamos editá-lo para desabilitar os certificados TLS, para isso termos que adicionar a linha:
environment = ["DOCKER_TLS_CERTDIR="]
Logo após as linhas executor = "docker"
, nosso arquivo deve ficar semelhante a esse:
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
<outras-configuraões>
executor = "docker"
environment = ["DOCKER_TLS_CERTDIR="]
<outras-configuraões>
[[runners]]
name = "runner-bytebank"
url = "https://gitlab.com/"
token = "XXXXXXXXXXXXXXXXXXX"
executor = "docker"
environment = ["DOCKER_TLS_CERTDIR="]
<outras-configuraões>
E por fim precisarmos executar novamente o gitlab-runner com o comando:
docker start gitlab-runner
Isso deve resolver o problema!