1

Kubernetes Wenn ich ein Gitlab Projekt haben, die mehrere Unterordner enthält:Gitlab CI Teilprojekte entwickeln und bereitstellen sie separat

  • zwei mit Java-Code (von java: alpin, mit Maven zu kompilieren und zu bauen Container)
  • eines mit nginx config (aus openresty: Alpine, einen Web-Server-Container)

Jedes der Teilprojekte hat eine Dockerfile, deployment.yml und Gitlab-ci.yml aufzubauen.

deployment.yml ist für alle Unterordner im Projekt ähnlich, da alle Unterprojekte zu einem einzelnen kubernetes-Pod mit mehreren Containern führen.

Wie kann ich dieses Projekt einrichten, um nur den Container zu erstellen und zu deployen, den ich beim letzten Commit bearbeitet habe?

Antwort

0

benutzte ich einen schmutzigen Hack wie mehrere Build-Blöcke in .gitlab-ci.yml für jedes Teilprojekt einstellen und auf sie only Parameter für jede Einstellung:

maven-build-akka: 
    image: maven:3-jdk-8 
    stage: build 
    only: 
    - /^akka-.*$/ 
    script: 
    - cd akka 
    - mvn package -B --settings ../settings.xml 
    artifacts: 
    paths: 
     - akka/target/*.jar 

Und so für docker build stage.

Danach, wenn ich ein Tag wie akka-1.0.3 drücken, würden entsprechende Pipeline-Jobs gestartet werden.

Aber es gibt ein Problem mit nur einem Namen für Bilder in der GitLab CI-Registrierung für ein einzelnes Projekt, so sollten Sie Bilder woanders (GCR, etc.)

schieben