Skip to content
Bruno Ramos edited this page Feb 28, 2022 · 1 revision

Nexus

O Nexus é uma plataforma para gerenciamento de binários, artefatos, builds e etc. O Nexus é utilizado para armazenar a imagem docker que foi criada através da Pipeline. Ele pode ser utilizado como gerenciador de pacotes (mvn ,npm, helm, docker, etc.). Funciona como proxy de repositório - cache local, Exemplo, se você instalar um pacote, ele irá ver se no cache local já tem o pacote instalado, sem a necessidade de baixar da internet. Pode ser utilizado como registry docker, ou seja, uma espécie de armazenador de imagens docker gerada.

HandOn

Criar volume docker
$ docker volume create –name nexus-data

Build do container
$ docker run -d -p 8091:8081 -p 8123:8123 --name nexus -v nexus-data:/nexus-data sonatype/nexus3

  • Olhar mais detalhes sobre o container sonatype/nexus 3 na documentação do docker hub

Abrir um terminal no container
$ docker exec -it nexus bash

Pegar a senha admin do nexus
$ cat /nexus-data/admin.password

No Nexus, devemos criar um usuário, posteriormente criar um repositório do tipo docker(hosted), habilitar a opção HTTP e Online, no HTTP setar a porta 8123. Na máquina do jenkins, vamos até o diretório no qual encontram-se os jobs do Jenkins /var/lib/jenkins/workspace/ copiar a pasta redis-app e mandar para /root

Depois fazemos o build do container redis
$ docker build -t devops/app .

Logar no nexus através do docker, utilizar a autenticação criada no Nexus
$ docker login localhost:8123

Poderia utilizar inserindo os dados porém não é recomendado, pois a senha fica no history
$ docker login -u jenkins -p devops localhost:8123

Taguear para o repositório remoto
$ docker tag devops/app:latest localhost:8123/devops/app

Subir para o nexus
$ docker push localhost:8123/devops/app

Integrar o nexus com o Jenkins

Gerenciar Jenkins >> Configuração Global Criar a variável de ambiente NEXUS_URL, passar o valor para localhost:8123

Gerenciar Jenkins >> Manage credentials >> criar nova credencial >> jenkins >> global credentials >> add credentials >> user with password

Feito isso temos o processo de CI totalmente completo

Clone this wiki locally