Jenkins um servidor de automação gratuito e de código aberto usado para Integração Continua(CI – Continuous Integration) uma pratica de DevOPS e Desenvolvimento Ágil de Software. Ele é um sistema baseado em servidor que é executado em contêineres de servlet, como o Apache Tomcat. Ele ajuda a automatizar as partes do desenvolvimento de software relacionados à construção, implementação e teste, facilita a integração contínua e a entrega contínua, suportando ferramentas de controle de versão, incluindo AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCasee RTC, podendo executar projetos baseados no Apache Ant, Apache Maven e sbt, como scripts shell arbitrários e comandos em lote do Windows.
Criado por Kohsuke Kawaguchi, Jenkins é um software livre, lançado sob a licença Mit, suas construções podem ser adicionadas por vários meios, por exemplo, confirmar em um sistema de controle de versão, agendar através de um mecanismo semelhante ao cron e solicitar uma URL de construção específica, podendo ser acionado após a conclusão de outras compilações na fila, Jenkins pode ter suas funcionalidades estendidas com plug-ins.
No MacOs e Linux.
Abra uma janela do terminal.
Crie uma rede de ponte no Docker usando o seguinte docker network create comando:
- docker network create jenkins
Crie os seguintes volumes para compartilhar os certificados TLS do cliente Docker necessários para conectar-se ao daemon do Docker e persistir os dados Jenkins usando os seguintes docker volume create comandos:
- docker volume create jenkins-docker-certs
- docker volume create jenkins-data
Para executar comandos do Docker dentro dos nós Jenkins, faça o download e execute a docker:dind imagem do Docker usando o seguinte docker container run comando:
- docker container run \
- –name jenkins-docker \
- –rm \
- –detach \
- –privileged \
- –network jenkins \
- –network-alias docker \
- –env DOCKER_TLS_CERTDIR=/certs \
- –volume jenkins-docker-certs:/certs/client \
- –volume jenkins-data:/var/jenkins_home \
- –publish 2376:2376 \
- docker:dind
Nota: Se copiar e colar o snippet de comando acima não funcionar, tente copiar e colar esta versão sem anotações aqui:
- docker container run –name jenkins-docker –rm –detach \
- –privileged –network jenkins –network-alias docker \
- –env DOCKER_TLS_CERTDIR=/certs \
- –volume jenkins-docker-certs:/certs/client \
- –volume jenkins-data:/var/jenkins_home \
- –publish 2376:2376 docker:dind
Baixe a jenkinsci/blueocean imagem e execute-a como um contêiner no Docker usando o seguinte docker container run comando:
- docker container run \
- –name jenkins-blueocean \
- –rm \
- –detach \
- –network jenkins \
- –env DOCKER_HOST=tcp://docker:2376 \
- –env DOCKER_CERT_PATH=/certs/client \
- –env DOCKER_TLS_VERIFY=1 \
- –publish 8080:8080 \
- –publish 50000:50000 \
- –volume jenkins-data:/var/jenkins_home \
- –volume jenkins-docker-certs:/certs/client:ro \
- jenkinsci/blueocean
Nota: Se copiar e colar o snippet de comando acima não funcionar, tente copiar e colar esta versão sem anotações aqui:
- docker container run –name jenkins-blueocean –rm –detach \
- –network jenkins –env DOCKER_HOST=tcp://docker:2376 \
- –env DOCKER_CERT_PATH=/certs/client –env DOCKER_TLS_VERIFY=1 \
- –volume jenkins-data:/var/jenkins_home \
- –volume jenkins-docker-certs:/certs/client:ro \
- –publish 8080:8080 –publish 50000:50000 jenkinsci/blueocean
Para mais informações. Clique aqui!