Jenkins Nexus SonarQube Docker-Compose – nie uwierzysz jakie to proste – integracja 3 komponentów!

You are currently viewing Jenkins Nexus SonarQube Docker-Compose – nie uwierzysz jakie to proste – integracja 3 komponentów!
Share This Post, Help Others, And Earn My Heartfelt Appreciation! :)
4.8
(625)

To już kolejny mój post, w którym przedstawiam w jaki prosty sposób można zestawić środowisko [ Jenkins Nexus SonarQube Docker-Compose ] z wykorzystaniem dobrodziejstw płynących z Docker-Compose.

Tym razem skupimy się na przykładzie, gdzie skonfigurujemy środowisko składające się z:

Jenkins Nexus SonarQube Docker-Compose

Jenkins Nexus SonarQube Docker-Compose - nie uwierzysz jakie to proste - integracja 3 komponentów!

Skrypt docker-compose.yml

version: "3"
services:
  jenkins:
    image: jenkinsci/blueocean
    container_name: jenkins
    environment:
      - DOCKER_HOST=tcp://localhost:2375
      - JENKINS_UC=http://updates.jenkins.io
      - JENKINS_UC_EXPERIMENTAL=http://updates.jenkins.io/experimental
      - JENKINS_INCREMENTALS_REPO_MIRROR=http://repo.jenkins-ci.org/incrementals
    user: root
    ports:
      - "8080:8080"
      - "8443:8443"
      - "50000:50000"  
    expose:
      - "8080"
    volumes:
      - jenkins-data:/var/jenkins_home
      - jenkins-home:/home


  nexus:
    image: sonatype/nexus3
    container_name: nexus
    volumes:
      - "nexus-data:/nexus-data"
    ports:
      - "8081:8081"
    expose:
      - "8081"

  sonarqube:
    image: sonarqube
    container_name: sonarqube
    ports:
      - "9000:9000"
    environment:
      - sonar.jdbc.url=jdbc:postgresql://db:5432/sonar
    volumes:
      - sonarqube_conf:/opt/sonarqube/conf
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions

  db:
    image: postgres
    environment:
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar
    volumes:
      - postgresql:/var/lib/postgresql
      # This needs explicit mapping due to https://github.com/docker-library/postgres/blob/4e48e3228a30763913ece952c611e5e9b95c8759/Dockerfile.template#L52
      - postgresql_data:/var/lib/postgresql/data

volumes:
  nexus-data: {}
  jenkins-data: {}
  jenkins-home: {}
  sonarqube_conf: {}
  sonarqube_data: {}
  sonarqube_extensions: {}
  postgresql: {}
  postgresql_data: {}

Sprawdź Status Kontenerów

Zanim zaczniemy dalszą cześć konfiguracji, sprawdź czy wszystkie kontenery są w statusie „UP”.

docker-compose ps
          Name                        Command               State                                    Ports                                  
--------------------------------------------------------------------------------------------------------------------------------------------
jenkins                    /sbin/tini -- /usr/local/b ...   Up      0.0.0.0:50000->50000/tcp, 0.0.0.0:8080->8080/tcp, 0.0.0.0:8443->8443/tcp
jenkins_nexus_sonar_db_1   docker-entrypoint.sh postgres    Up      5432/tcp                                                                
nexus                      sh -c ${SONATYPE_DIR}/star ...   Up      0.0.0.0:8081->8081/tcp                                                  
sonarqube                  ./bin/run.sh                     Up      0.0.0.0:9000->9000/tcp 

Jenkins – pierwsze uruchomienie

Interfejs użytkownika Jenkins dostępny jest pod adresem URL: http://localhost:8080

Przy pierwszym uruchomieniu zostaniemy poproszeni o podanie hasła administratora, które jest zapisane w pliku: /var/jenkins_home/secrets/initialAdminPassword, który znajduję sie na systemie plików kontenera z Jenkinsem. Aby otworzyć zawartość tego pliku musimy „wejść” do tego kontenera przy użyciu SSH. W tym celu z terminala uruchamiamy komende:

(Jenkins Nexus SonarQube Docker-Compose)

# docker exec -it <nazwa_kontenera> /bin/bash
docker exec -it jenkins /bin/bash

Gdy już jesteśmy wewnątrz kontenera uruchamiamy komende poniżej. Ciąg znaków to nasze hasło administratora.

cat /var/jenkins_home/secrets/initialAdminPassword
1367d1e351194e839abb21682498e63d

Instalacja wtyczek (plugins)

Następnie zainstaluj sugerowane wtyczki. Jest to zbiór podstawowych rozszerzeń, które można traktować jako pakiet startowy.

Jenkins Nexus SonarQube Docker-Compose - nie uwierzysz jakie to proste - integracja 3 komponentów!
Jenkins Nexus SonarQube Docker-Compose - nie uwierzysz jakie to proste - integracja 3 komponentów!

Tworzenie Konta Administratora

Kolejnym krokiem jest utworzenie konta administratora.

Jenkins Nexus SonarQube Docker-Compose - nie uwierzysz jakie to proste - integracja 3 komponentów!

Po utworzeniu konta admin możemy już w pełni korzystać z Jenkinsa.

Nexus – Pierwsze Uruchomienie

Interfejs użytkownika Nexus dostępny jest pod adresem URL: http://localhost:8081

Przy próbie pierwszego logowania otrzymamy informację, że hasło do usera admin zostało wygenerowane i znajduję się pod ścieżką: /nexus-data/admin.password. Sprawdźmy jakie to hasło!

Korzystając z poniższej komendy wejdziemy na kontener Nexusa. (Jenkins Nexus SonarQube Docker-Compose)

docker exec -it nexus /bin/bash

cat /nexus-data/admin.password
05feffa3-f8e3-49ed-b765-002d6b90d2a5

Wklejamy powyższe hasło do formatki logowania. Następnie zostaniemy poproszeni o ustawienie swojego hasła do czego zachęcam.

SonarQube – Pierwsze Uruchomienie

Interfejs użytkownika SonarQube dostępny jest pod adresem URL: http://localhost:9000

Klikamy w prawym górnym rogu przycisk „Log-in”. Domyślny użytkownik administratora to: admin i hasło również: admin.

Jenkins Nexus SonarQube Docker-Compose - nie uwierzysz jakie to proste - integracja 3 komponentów!

Podsumowanie

Jak widzisz tworzenie środowiska przy pomocy docker-compose jest naprawdę proste. W kilka minut możemy stowrzyć i zacząć używać narzędzi.

Reasumując, poniżej przedstawiam jeszcze listę URLs kolejno do:

  • Jenkins
  • Nexus
  • SonarQube

To by buyło na tyle o integracji Jenkins Nexus SonarQube Docker-Compose!

Jeśli spodobał Ci się ten post to zostaw proszę komentarz poniżej lub udostępnij ten post na swoim Facebook’u, Twitter’ze, LinkedIn lub innej stronie z mediami społecznościowymi.
Dzięki!

How useful was this post?

Click on a star to rate it!

Average rating 4.8 / 5. Vote count: 625

No votes so far! Be the first to rate this post.

Subscribe
Powiadom o
guest
0 Comments
Inline Feedbacks
View all comments