Das Tutorial zur Installation von SonarQube mit Docker lautet wie folgt: 1. Ziehen Sie das Bild1.1 Ziehen Sie das entsprechende Bild und führen Sie es aus1.1.1 Relevante Bilder abrufen# Ziehen Sie das SonarQube-Image $ docker pull sonarqube:9.1.0-community (empfohlen) / $ docker pull sonarqube:7.6-community # Ziehen Sie das Postgres-Image $ docker pull postgres:9.6.23 1.1.2 Ausführen des Images# Führen Sie die Postgres-Datenbank aus. $ docker run --name postgresqldb --restart=always -p 5432:5432 \ -e POSTGRES_USER=root \ -e POSTGRES_PASSWORD=123456 \ -d postgres:9.6.23 # Rufen Sie den Postgres-Container auf und erstellen Sie einen Benutzernamen und ein Passwort $ docker exec -it postgresqldb bash # Melden Sie sich bei der Datenbank an psql -U root -W # Erstellen Sie einen Benutzernamen und ein Passwort. Erstellen Sie den Benutzer „Sonar“ mit dem Passwort „Sonar“. Sonar-Eigentümer-Sonar-Datenbank erstellen; Gewähren Sie Sonar alle Berechtigungen für die Datenbank Sonar. # Führen Sie den Befehl aus, ohne eine Verbindung zur Postgres-Datenbank herzustellen (nicht empfohlen) docker run --name sonarqube --restart=always -p 9000:9000 -d naumy/hitrend-sonarqube:v1.0 # Führen Sie den SonarQube-Container aus docker run -d --name sonarqube --restart=always \ -p 9000:9000 \ -e sonar.jdbc.Benutzername=sonar \ -e sonar.jdbc.password=sonar \ -e sonar.jdbc.url=jdbc:postgresql://139.198.176.140:5432/sonar \ sonarqube:9.1.0-Community Besuchen Sie dann: http://localhost:9000/, der Standardadministratorbenutzer und das Standardkennwort sind: Die eingebettete Datenbank sollte nur zu Evaluierungszwecken verwendet werden. Die eingebettete Datenbank kann nicht erweitert werden und unterstützt weder ein Upgrade auf neuere Versionen von SonarQube noch die Migration von Daten von dieser Datenbank zu anderen Datenbankmodulen. 1.2 Speichern und senden Sie das geänderte Bild# Speichern Sie das geänderte Image docker commit -a "naumy" -m "Install Chinese plugin" 19f1cc24dc98 hitrend-sonarqube:v1.0 # Ändern Sie den Namen des alten Images in den neuen Versionsnamen, der vom Repository-Docker-Tag hitrend-sonarqube:v1.0 naumy/hitrend-sonarqube:v1.0 benötigt wird. # Melden Sie sich beim Docker-Hub an Docker-Anmeldung # Push docker push naumy/hitrend-sonarqube:v1.0 2. Installation erfolgreich3. Plugin-Installation3.1 Installieren Sie das chinesische Plugin Wählen Sie nach erfolgreicher Anmeldung Wenn der Status Danach wird es auf Chinesisch angezeigt.
4. Installieren Sie Gitlab im Docker4.1. Gitlab-Image abrufen# gitlab-ce ist eine stabile Version. Wenn Sie die Version nicht eingeben, wird standardmäßig die neueste Version heruntergeladen. $ docker pull gitlab/gitlab-ce 4.2 Ausführen des Gitlab-Image$ docker run -d -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce # -d: Im Hintergrund ausführen# -p: Den internen Port des Containers nach außen abbilden# --name: Den Container benennen# -v: Den Datenordner oder das Protokoll, die Konfiguration und andere Ordner im Container im angegebenen Verzeichnis des Hosts mounten Gemäß der obigen Methode läuft der Gitlab-Container einwandfrei, aber beim Erstellen eines Projekts auf Gitlab wird die URL-Zugriffsadresse des generierten Projekts gemäß dem Hostnamen des Containers generiert, d. h. gemäß der ID des Containers. Als Gitlab-Server benötigen wir eine feste URL-Zugriffsadresse, daher müssen wir gitlab.rb konfigurieren (Hostpfad: /home/gitlab/config/gitlab.rb ). # Der Inhalt der Datei gitlab.rb besteht standardmäßig nur aus Kommentaren$ vim /home/gitlab/config/gitlab.rb # Konfigurieren Sie die vom HTTP-Protokoll verwendete Zugriffsadresse. Wenn keine Portnummer hinzugefügt wird, ist der Standardwert 80. externe_URL 'http://192.168.199.231' # Konfigurieren Sie die vom SSH-Protokoll verwendete Zugriffsadresse und den Port gitlab_rails['gitlab_ssh_host'] = '192.168.199.231' gitlab_rails['gitlab_shell_ssh_port'] = 222 # Dieser Port ist der Port 222, der während der Ausführung Port 22 zugeordnet ist: wq #Speichern Sie die Konfigurationsdatei und beenden Sie # Starten Sie den Gitlab-Container neu $ docker restart gitlab Zu diesem Zeitpunkt hat sich die Lageradresse des Projekts geändert. Wenn die SSH-Portadresse nicht die Standardadresse 22 ist, wird der Protokollheader ssh:// hinzugefügt. Öffnen Sie den Browser und geben Sie die IP-Adresse ein (da mein Gitlab-Port 80 ist, muss die Portnummer nicht in die Browser-URL eingegeben werden. Wenn die Portnummer nicht 80 ist, wird sie wie folgt geöffnet: ip:Portnummer) 4.3 Root-Benutzernamen und -Passwort festlegenGehen Sie in das Verzeichnis /home/gitlab/config/initial_root_password und sehen Sie sich das Passwort an
Oder ändern Sie das Passwort nach dem Betreten des Gitlab-Containers. root@ba96cb6a1f47:/# Gitlab-Rails-Konsole -------------------------------------------------------------------------------- Ruby: Ruby 2.7.4p191 (2021-07-07 Revision a21a3b7d23) [x86_64-linux] GitLab: 14.3.2 (92acfb1b8a9) FOSS GitLab-Shell: 13.21.1 PostgreSQL: 12.7 -------------------------------------------------------------------------------- irb(main):005:0> Benutzer = Benutzer.where(id: 1).first => #<Benutzer-ID:1 @root> irb(main):006:0> Benutzer.Passwort=12345678 => 12345678 irb(main):007:0> Benutzer.Passwort_Bestätigung=12345678 => 12345678 irb(main):008:0> Benutzer.Speichern! In die Warteschlange von ActionMailer::MailDeliveryJob (Job-ID: 4fc2d685-2fd6-41d9-893e-2dabc7c3b366) zu Sidekiq(Mailer) mit den Argumenten gestellt: „DeviseMailer“, „Passwort ändern“, „jetzt_liefern“, {:args=>[#<GlobalID:0x00007fc6c59b5b48 @uri=#<URI::GID gid://gitlab/User/1>>]} => wahr irb(main):009:0> beenden Wirkungsdiagramm nach dem Ausführen 4.4 Speichern Sie das Image und übertragen Sie es auf Dockerhub# Speichern Sie das geänderte Image docker commit -a "naumy" -m "initialize gitlab" ba96cb6a1f47 gitlab:v1.0 docker commit -a "naumy" -m "sonarqube:7.6-community " e70c6cbe2e0b sonarqube-7.6-community:v1.0 Docker-Tag SonarQube-7.6-Community: V1.0 Naumy/SonarQube-7.6-Community: V1.0 Docker Push Naumy/SonarQube-7.6-Community: V1.0 # Ändern Sie den Namen des alten Images in den neuen Versionsnamen, der vom Repository-Docker-Tag gitlab:v1.0 naumy/gitlab:v1.0 benötigt wird # Melden Sie sich beim Docker-Hub an Docker-Anmeldung # Push docker push naumy/gitlab:v1.0 5. Aufgetretene Probleme5.1 Unzureichender virtueller SpeicherNach dem Starten des Containers sind etwa zehn Sekunden vergangen. Der Container wird automatisch beendet. Fehler: Max. virtuelle Speicherbereiche vm.max_map_count [65530] ist zu niedrig, erhöhen Sie auf mindestens [262144] Nach dem Ausführen des Containers wird dieser sofort beendet. # Verwenden Sie den Befehl, um das laufende Protokoll anzuzeigen. Docker-Protokolle: Containername/Container-ID Fügen Sie am Ende der Datei /etc/sysctl.conf eine Zeile hinzu vm.max_map_count=262144 Führen Sie 6. Integrieren Sie Sonar und GitLab6.1 Gitlab-Runner installieren6.1.1 Gitlab-Token erhaltenWählen Sie nach dem Aufrufen von Gitlab den Runner aus und erhalten Sie das entsprechende Token. 6.1.2 Gitlab-Runner installieren# Ziehen Sie das Image docker pull gitlab/gitlab-runner:v13.2.4 # Erstellen Sie ein Container-Mapping-Verzeichnis mkdir -p /dwz/docker-volume/gitlab-runner/config # Erstellen Sie einen Container und führen Sie docker run -d --name gitlab-runner \ aus --restart immer \ -v /dwz/docker-volume/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:v13.2.4 Konfigurieren Sie nach dem Aufrufen des Gitlab-Runner-Containers die entsprechenden Parametereinstellungen: docker exec -it gitlab-runner gitlab-runner register -n \ --url http://139.198.166.208 \ --registration-token 9zEbBYXSyqJqpNb9QSNh \ --executor docker \ --Beschreibung "Docker Runner" \ --docker-image "sonarsource/sonar-scanner-cli:latest" \ --docker-volumes /var/run/docker.sock:/var/run/docker.sock Laden Sie die Gitlab-Seite erneut und das Runner-Konfigurationselement wird angezeigt. 6.2 Legen Sie den Benutzernamen und das Passwort von Sonarqube fest
6.3 Projektanalyse durchführen (Projekte manuell hinzufügen)Müssen Sie Ihre bevorzugte CI integrieren und Gitlab für kontinuierliche Integration und kontinuierliche Bereitstellung verwenden? Der erste Schritt besteht darin, den Projektcodetyp auszuwählen, der erkannt werden soll: Erstellen Sie eine neue Konfigurationsdatei sonar-project.properties: sonar.projectKey=gitlab-sonorqube sonar.qualitygate.wait=true sonar.language=py Schritt 2: Umgebungsvariablen hinzufügen Token-Schlüssel: Fügen Sie nach Bedarf die entsprechenden Umgebungsvariablen hinzu: 6.4 CI/CD durchführen (Sonar und Gitlab)Version 6.4.1 ist sonarqube-7.6-communityErstellen Sie ein Gitlab-Projekt. Das im Experiment verwendete Projekt ist ein Python-Projekt. Der Inhalt der Datei .gitlab-ci.yml ist # Diese Datei ist eine Vorlage und muss möglicherweise bearbeitet werden, bevor sie für Ihr Projekt geeignet ist. # Um Verbesserungen an CI/CD-Vorlagen beizutragen, folgen Sie bitte dem Entwicklungshandbuch unter: # https://docs.gitlab.com/ee/development/cicd/templates.html # Diese spezielle Vorlage befindet sich unter: # https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml # Dies ist eine Beispielkonfigurationsdatei für GitLab CI/CD, die ohne Änderungen ausgeführt werden sollte. # Es demonstriert eine grundlegende 3-stufige CI/CD-Pipeline. Statt echter Tests oder Skripte # es verwendet Echo-Befehle, um die Pipeline-Ausführung zu simulieren. # # Eine Pipeline besteht aus unabhängigen Jobs, die Skripte ausführen und in Phasen gruppiert sind. # Die Phasen werden in sequenzieller Reihenfolge ausgeführt, die Jobs innerhalb der Phasen jedoch parallel. # # Weitere Informationen finden Sie unter: https://docs.gitlab.com/ee/ci/yaml/index.html#stages levels: # Liste der Phasen für Jobs und deren Reihenfolge der Ausführung - bauen - prüfen - einsetzen Build-Job: # Dieser Job wird in der Build-Phase ausgeführt, die zuerst ausgeführt wird. Phase: Bauen Skript: - echo "Der Code wird kompiliert..." - echo "Kompilierung abgeschlossen." unit-test-job: # Dieser Job wird in der Testphase ausgeführt. Phase: Test # Er startet erst, wenn der Job in der Build-Phase erfolgreich abgeschlossen wird. Skript: - echo "Unit-Tests werden ausgeführt... Dies dauert etwa 60 Sekunden." - 60 Schlafplätze - echo "Die Codeabdeckung beträgt 90 %" lint-test-job: # Dieser Job läuft auch in der Testphase. Phase: Test # Kann gleichzeitig mit dem Unit-Test-Job (parallel) ausgeführt werden. Skript: - echo „Code wird linten … Dies dauert etwa 10 Sekunden.“ - 10 Schlafplätze - echo „Keine Lint-Probleme gefunden.“ Bereitstellungsjob: # Dieser Job wird in der Bereitstellungsphase ausgeführt. Phase: Bereitstellen # Wird nur ausgeführt, wenn *beide* Jobs in der Testphase erfolgreich abgeschlossen wurden. Skript: - echo „Anwendung wird bereitgestellt …“ - echo „Anwendung erfolgreich bereitgestellt.“ Bild: Name: Sonarsource/Sonar-Scanner-CLI:latest Einstiegspunkt: [""] SonarQube-Prüfung: Skript: - Sonar-Scanner -X -Dsonar.projectKey=gitlab-sonorqube -Dsonar.host.url=http://139.198.176.140:9000 -Dsonar.login=cbd26f998beeb61d7a991e0282efc430b020d9f1 -Dsonar.login=admin -Dsonar.password=admin -Dsonar.language=py -Dsonar.java.binaries=build/ -Dsonar.projectVersion=1.0 -Dsonar.sources=. allow_failure: wahr nur: - Hauptnummer oder der Name Ihres Hauptzweigs Nach dem Absenden des Codes können Sie die entsprechenden Testinformationen erhalten. https://sm.ms/image/ykYPlDgZVvuhzsq Version 6.4.2 ist sonarqube-9.1-communityDer Inhalt der Datei .gitlab-ci.yml ist SonarQube-Prüfung: Bild: Name: Sonarsource/Sonar-Scanner-CLI:latest Einstiegspunkt: [""] Variablen: SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Definiert den Speicherort des Analyse-Task-Cache GIT_DEPTH: "0" # Weist Git an, alle Zweige des Projekts abzurufen, die für die Analyseaufgabe erforderlich sind Cache: Schlüssel: "${CI_JOB_NAME}" Pfade: - .sonar/cache Skript: - Sonar-Scanner -X -Dsonar.projectKey=gitlab-sonorqube -Dsonar.host.url=http://139.198.176.140:9000 -Dsonar.login=7f9e3408ac11e0699e2f8afdb21a662cc8ab2698 -Dsonar.login=admin -Dsonar.password=123456 -Dsonar.language=py -Dsonar.java.binaries=build/ -Dsonar.projectVersion=1.0 -Dsonar.sources=. allow_failure: wahr nur: - Hauptnummer oder der Name Ihres Hauptzweigs Nach dem Absenden des Codes führt Gitlab automatisch CI/CD durch: Klicken Sie hier, um zu prüfen, ob der entsprechende Status und Inhalt den Anforderungen entspricht: Nach Abschluss des Laufs werden Ihnen die entsprechenden Testanalyseergebnisse angezeigt: 6.5 Während des Integrationsprozesses aufgetretene ProblemeDie Konfigurationsdatei ist falsch: Es wird Python-Code verwendet, daher wird in Zukunft py als Sprachauswahl verwendet. 7. ZusammenfassungDie derzeit verwendeten Tools sind:
Nachdem der Entwickler den Code an das Gitlab-Repository übermittelt hat, wird die automatische Zusammenführungsaufgabe des Master-Zweigs ausgelöst, der Code gescannt (er kann in andere Testzweige geändert werden) und die Scanergebnisse werden an die SonarQube-Plattform zurückgegeben. Dies ist das Ende dieses Artikels zur Installation von SonarQube mit Docker. Weitere Informationen zur Installation von SonarQube mit Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Einfaches Grafik-Tutorial zur Verwendung von Adobe Brackets
Dieser Statuscode gibt Auskunft über den Status d...
Inhaltsverzeichnis Normale Belastung Lazy Loading...
Lassen Sie uns zunächst einige wichtige Punkte zu...
Wenn der Entwickler Dockerfile zum Erstellen des ...
Die MySQL-Transaktionsunterstützung ist nicht an ...
MySQL-Version: MySQL Community Edition (GPL) ----...
Inhaltsverzeichnis 1. Aggregierte Abfrage 1. COUN...
Inhaltsverzeichnis 1. E-Mail 2. Mobiltelefonnumme...
Inhaltsverzeichnis Ist setState synchron oder asy...
Vorwort Wie wir alle wissen, ist in Linux alles e...
Remote-Debugging von Webdiensten In .NET ist die ...
Centos7-Switch-Boot-Kernel Hinweis: Bei Bedarf wi...
Inline-Format <colgroup>…</colgroup> ...
Inhaltsverzeichnis 1. Installation 2. Einführung ...
In diesem Artikel werden hauptsächlich Tabellen e...