Jenkins & Nexus & SonarQube: Budowa środowiska przy użyciu Docker-Compose

Jenkins & Nexus & SonarQube: Budowa środowiska przy użyciu Docker-Compose

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

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

  • Jenkins
  • SonarQube + PostgreSQL
  • Nexus

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:

# 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.

Tworzenie konta administratora

Kolejnym krokiem jest utworzenie konta administratora.

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.

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.

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:

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

Leave a Reply

avatar
  Subscribe  
Powiadom o
Close Menu