2017-03-15 13 views
1

Ist dies möglich, eine Konfiguration einzurichten, die Folgendes umfassen würde:Gitlab CI-Pipeline mit Multi-Container Kubernetes pod

  1. Gitlab Projekt # 1 java-Container
  2. Gitlab Projekt # 2 java-Container
  3. Nginx Behälter
  4. Redis Behälter
  5. Cassandra Behälter
  6. Nginx Ausführer (Prometheus)
  7. Redis Exporteur (Prometheus)
  8. JMX Exporteur (Prometheus) x2

Es ist wichtig, das alles in einem Multi-Container pod auf Kubernetes (GKE) und die Kommunikation über gemeinsam genutzte Volumen und localhost zu haben.

Ich habe bereits alles in kubernetes mit ersten Containern getan (um den Code zu ziehen und kompilieren), und jetzt suche ich nach der Möglichkeit, dies mit CI/CD zu machen.

Also, wenn dies mit GitLab CI getan werden könnte, könnten Sie bitte, verweisen Sie mich auf die richtige Dokumentation oder Handbuchseiten, wie ich ein Neuling in GitLab CI und Sachen bin, und habe mich bereits in Dutzenden von verloren Artikel aus dem Internet.

Vielen Dank im Voraus.

+0

Konnten Sie dies konfigurieren. Wenn ja, bitte teilen Sie die hilfreiche Dokumentation/Notizen. – Sharan

+0

@Sharan Ich arbeite gerade daran.Ich werde neben meiner Frage antworten und würde die Updates hinzufügen, während ich durch diese gehe. –

+0

Schätzen Sie die Hilfe. Ich finde die Dokumente, die du geteilt hast, hilfreich. – Sharan

Antwort

1

Die erste Sache ist, alle Projekte zu verbinden, die mit Maven und (oder) Docker in das gemeinsame Projekt bei GitLab gebaut werden sollten.

Als nächstes fügen Sie Dockerfiles und alle Dateien, die für den Docker-Build benötigt werden, in die Unterprojektordner ein.

Als nächstes im Stamm des gemeinsamen Projekts sollten wir sollten .gitlab-ci.yml und deployment.yml-Datei.

deployment.yml sollte gemeinsam oder das gesamte Unterprojekt sein.

.gitlab-ci.yml sollte alle Phasen zum Erstellen jedes Unterprojekts enthalten. Da wir nicht jedes Mal, wenn wir Änderungen an simes-Dateien vornehmen, all das Zeug aufbauen müssen, sollten wir die Tags in git verwenden, um GitLab CI verständlich zu machen. In diesem Fall sollte es die eine oder andere Stufe durchlaufen. Dies könnte durch onlyparameter realisiert werden:

docker-build-akka: 
    stage: package 
    only: 
    - /^akka-.*$/ 
    script: 
    - export DOCKER_HOST="tcp://localhost:2375" 
... 

Und so weiter in jeder Phase. Also, wenn Sie Änderungen an der benötigten Dockerfile oder Java-Code vornehmen, sollten Sie commit und Push an gitlab mit einem Tag wie akka-0.1.4, und GitLab CI Runner wird nur die entsprechenden Stufen ausführen.

Auch, wenn Sie Änderungen an der Datei README.md oder andere Änderungen vornehmen, die das Projekt nicht erstellen müssen - es würde nicht.

Viele nützliche Dinge, die Sie finden können here und here.

Schauen Sie sich auch die problem an, die ich in kubernetes Lauf Docker Build Stage konfrontiert. Es könnte mir helfen.

Verwandte Themen