Jenkins – servidor de Integração Contínua(CI) open-source

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!