Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Habilitar o Deamon do docker dentro de um docker do jenkins

Boa Tarde,

Estou com uma estrutura diferente do que o professor passou. Estou criando uma imagem com todas as configurações necessarias para rodar o jenkins.

Segue meu arquivo Dockerfile

#Baixando a imagem do jenkins
FROM jenkins/jenkins
LABEL maintainer="Juliano Martins"
USER root

#Atualizando o jenkins para ultima versão
RUN wget https://updates.jenkins.io/download/war/2.259/jenkins.war
RUN mv jenkins.war /usr/share/jenkins
RUN chown jenkins:jenkins /usr/share/jenkins/jenkins.war

# Instalando o Docker
COPY get-docker.sh /usr
RUN /usr/get-docker.sh

# Configurando deamon
RUN mkdir -p /etc/systemd/system/docker.service.d/
COPY override.conf /etc/systemd/system/docker.service.d/

Eu Monto o container da seguinte forma

docker run -d -v J:\Jenkins\home2:/var/jenkins_home -p 8090:8080 -p 50000:50000 scardofax/jenkins

Entrando no bash do container e executando o "docker ps" eu recebo a seguinte mensagem

"Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?"

Se executo "docker version" ele aparece a seguinte mensagem

Client: Docker Engine - Community Version: 19.03.13 API version: 1.40 Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17:03:03 2020 OS/Arch: linux/amd64 Experimental: false Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

É possivel efetuar o procedimento acima sem o uso de uma maquina virtual para o Jenkins?

espero que possam me dar uma luz, pois já pesquisei e não encontrei nada.

2 respostas

Olá Juliano, tudo bem? Penso que sim, de outra forma, na verdade você poderia fazer com que o Jenkins use SSH para se conectar com a máquina física e então executar os comandos diretamente na máquina física, como se o container que está executando o Jenkins fosse uma outra máquina. Esse procedimento foi feito em um outro curso, mas penso que seria uma boa ideia tentar essa solução, você pode assistir esse vídeo e depois esse outro vídeo.

Espero ter ajudado!

solução!

Obrigado Jonilson.

Estava faltando incluir o volume do docker na montagem do container e com isso não foi preciso configurar deamon.

Segue o Dockerfile atualizado

#Baixando a imagem do jenkins
FROM jenkins/jenkins
LABEL maintainer="Juliano Martins"
USER root

#Atualizando o jenkins para ultima versão
RUN wget https://updates.jenkins.io/download/war/2.259/jenkins.war
RUN mv jenkins.war /usr/share/jenkins
RUN chown jenkins:jenkins /usr/share/jenkins/jenkins.war

# Instalando o Docker
COPY get-docker.sh /usr
RUN /usr/get-docker.sh
RUN usermod -aG docker jenkins

# Configurando deamon
#RUN mkdir -p /etc/systemd/system/docker.service.d/
#COPY override.conf /etc/systemd/system/docker.service.d/

e por fim a montagem do container com o volume do docker

docker run -d -v J:\Jenkins\home2:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -p 8090:8080 -p 50000:50000 scardofax/jenkins

Espero que ajude.

Abraços