
Jenkins buildando dentro de container (Docker)
Contents
Executar o build do Jenkins dentro de um container.
Instalando Docker
| |
Configurando Docker
Se o acesso ao daemon do docker é feito de uma máquina remota, é necessário configurar o hosts no arquivo /etc/docker/daemon.json, em outras palavras, se o jenkins está em uma máquina e o docker em outra, essa configuração é necessária.
Adicionar o conteúdo abaixo ao arquivo /etc/docker/daemon.json
Essa configuração expõe o acesso ao daemon do docker a partir de todas as interfaces de rede. Para garantir a segurança tem que usar certificado: https://docs.docker.com/engine/security/https/
Reiniciar o docker
| |
Configurando Jenkins
Instalar o plugin Docker Plugin: https://wiki.jenkins.io/display/JENKINS/Docker+Plugin

Configurar plugin
- abrir o Jenkins
- menu
Manage Jenkins - menu
Configure System - na seção
Cloud- clicar em
Add a new cloud>Docker> preencher os campos - Name:
docker cloud - Docker Host URI:
unix:///var/run/docker.sockoutcp://IP-MAQUINA-DOCKER:2375 - clicar em
Test Connectione se tudo ok deve exibir a versão do docker - Enabled:
check - Container Cap:
5 - clicar em
Docker Agent templates... - clicar em
Add Docker Template - Labels:
docker-slave - Enabled:
check - Docker Image:
jenkins/ssh-slave - clicar em
Container settings... - Remote Filing System Root:
/home/jenkins - Usage:
Only build jobs with label expressions matching this node - Connect method:
Connect with SSH - SSH Key:
Inject SSH Key - User:
jenkins - Pull strategy:
Pull once and update latest
- clicar em
- clicar em
Save
Overview da configuração

Criar Job (ou alterar um existente)
Configurar o build para executar em container
- abrir as configurações do job
- marcar a opção
Restrict where this project can be run - Label Expression:
docker-slave
Buildar

Versões/Referências
- Jenkins: 2.121.1
- Docker client/server: 18.03.1-ce
- https://wiki.jenkins.io/display/JENKINS/Docker+Plugin
- https://hub.docker.com/r/jenkins/ssh-slave
MhagnumDw




