3
respostas

Integração do Jenkins em um container com o Docker em uma VM.

Boa tarde! Possuo um container com Jenkins, e o Docker está em uma VM no vagrant com a imagem do ubuntu. Eu expus o daemon conforme ensinado em aula e baixei o plugin do docker no jenkins, no entanto, não consigo executar comandos docker dentro do container, e o job no jenkins falha pelo mesmo motivo: docker: not found. Essa exposição do daemon não serve para um container? Teria de ser uma outra vm que estaria com o jenkins?

3 respostas

Olá jeans_bs, tudo bem? Não entendi uma coisa, você está executando tudo dentro da mesma máquina física, ou em máquinas diferentes? O que pode está acontecendo é que você está executando o Docker dentro de outra máquina virtual, e ai tem que ser feito a liberação das portas, mas detalha melhor seu ambiente pra gente poder entender melhor e te dar uma solução coerente possível!

Boa tarde! Estou executando o Docker dentro de uma VM, e dentro dessa VM eu realizei as configurações para expor o daemon na porta 2376. Realizando o teste de conexão na configuração de cloud no jenkins obtenho sucesso, inclusive se eu apenas buildar a imagem no Jenkins utilizando o passo do build Build/ Publish Docker image ele funciona. O container do jenkins está dentro dessa VM. No entanto não consigo executar comandos como 'docker ps' ou 'docker run --rm -i hadolint/hadolint < Dockerfile' no passo de build Executar shell no Jenkins. Executei o curl http://192.168.33.10:2376/version da minha maquina host, e de dentro do container jenkins e obtenho retorno positivo:

{"Platform":{"Name":"Docker Engine - Community"},"Components":[{"Name":"Engine","Version":"19.03.8","Details":{"ApiVersion":"1.40","Arch":"amd64","BuildTime":"2020-03-11T01:24:19.000000000+00:00","Experimental":"false","GitCommit":"afacb8b7f0","GoVersion":"go1.12.17","KernelVersion":"4.15.0-74-generic","MinAPIVersion":"1.12","Os":"linux"}},{"Name":"containerd","Version":"1.2.13","Details":{"GitCommit":"7ad184331fa3e55e52b890ea95e65ba581ae3429"}},{"Name":"runc","Version":"1.0.0-rc10","Details":{"GitCommit":"dc9208a3303feef5b3839f4323d9beb36df0a9dd"}},{"Name":"docker-init","Version":"0.18.0","Details":{"GitCommit":"fec3683"}}],"Version":"19.03.8","ApiVersion":"1.40","MinAPIVersion":"1.12","GitCommit":"afacb8b7f0","GoVersion":"go1.12.17","Os":"linux","Arch":"amd64","KernelVersion":"4.15.0-74-generic","BuildTime":"2020-03-11T01:24:19.000000000+00:00"}

Ainda não entendi bem, os dois, no caso o Jenkins e o Docker estão sendo executados na mesma máquina virtual correto? Bem, e qual o Docker Host URL? Você está usando a URL:

tcp://127.0.0.1:2376

Porque como ambos estão na mesma máquina o IP é o localhost.

Se puder disponibilizar prints das suas configurações no Google Drive fica mais fácil pra gente verificar corretamente o problema!