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/