Jenkins no Docker

O Jenkins é um software open-source escrito em Java que tem como principal finalidade automatizar e facilitar o deploy das aplicações para servidores de produção. Com o Jenkins é possível automatizar o deployment e testar a aplicação a cada mudança. É uma ferramenta bastante útil para desenvolvedores que não querem perder tempo na hora do deploy.

Porque Docker? Geralmente essa maquina de Jenkins é compartilhada entre diversos times, Java, PHP, Python, etc, o que acaba deixando essa máquina com ferramentas desnecessárias sobrecarregando o sistema.

Resolvi escrever este artigo para assimiliar os conhecimentos de um passo-a-passo do Rodrigo Floriano de Souza (https://www.linkedin.com/in/rodrigofloriano/) que também como eu é um afissurado por novas tecnologias

Rodrigo, funcionou perfeito. Muito bom!

Vamos lá:

Primeiro vamos criar um volume para persistimos os dados desse container:

[root@notebook ~]# docker volume create jenkins_home 
jenkins_home
[root@notebook ~]# docker volume ls 
DRIVER              VOLUME NAME
local               jenkins_home

Para informações sobre o volume criado:

[root@notebook ~]# docker volume inspect jenkins_home 
[
    {
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/jenkins_home/_data",
        "Name": "jenkins_home",
        "Options": {},
        "Scope": "local"
    }
]

Vamos baixar a imagem do Jenkins:

[root@notebook ~]# docker pull jenkins 

E rodamos o seguinte comando:

[root@notebook ~]# docker container run -d --name=tadeu_jenkins --restart=always -p 8080:8080 -p 50000:50000 -u 0 -v jenkins_home:/var/jenkins jenkins 
688a49a9e0d50507b08d53dc9b900e53ce82269615e78d4d29ceebfa80e82d41

Para obtermos mais detalhes se o volume criado foi montado nesse container podemos executar o inspect:

[root@notebook ~]# docker inspect --format '{{ .Mounts }}' tadeu_jenkins 
[{volume jenkins_home /var/lib/docker/volumes/jenkins_home/_data /var/jenkins local z true } {volume 974234b3aca6926bb2b14d240054a77d00447822c41c6a5498b3004315358527 /var/lib/docker/volumes/974234b3aca6926bb2b14d240054a77d00447822c41c6a5498b3004315358527/_data /var/jenkins_home local  true }]

Para obter a chave para prosseguir com a configuração do Jenkins digitamos:

[root@notebook ~]# docker exec b36908c72116 cat /var/jenkins_home/secrets/initialAdminPassword
36cc2ce5bf014628b2b5a417d5e0b005

Agora no nosso Browser acessamos http://127.0.0.1:8080 e prosseguimos com a configuração do nosso Jenkins e inserimos a chave quando solicitada.

Referências:
https://en.wikipedia.org/wiki/Jenkins_(software)https://jenkins.io/
http://www.mundodocker.com.br/docker-e-jenkins-para-build-de-aplicacoes/
https://rdglinux.wordpress.com/2017/04/22/jenkins-rodando-jenkins-como-container-utilizando-o-docker/

Jenkins no Docker