Benutzer-Werkzeuge

Webseiten-Werkzeuge


docu:gitlab-ci

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
docu:gitlab-ci [2018/05/14 17:43]
sage [Während des Build-Prozesses Zugriff auf anderes Gitlab-Repo gewähren] Namen des Scriptes synchronisiert
docu:gitlab-ci [2020/03/18 15:49] (aktuell)
abq319 [Minimales .gitlab-ci.yml]
Zeile 9: Zeile 9:
 Um ein Projekte für die Ausführung in der ICC vorzubereiten muss der Code als Docker-Image zur Verfügung stehen. Die folgende Vorlage illustriert dies anhand eine Golang-Projektes. Für andere Sprachen müssen die Anweisungen im Abschnitt ''​job_build.script''​ angepasst werden. Eine vollständige Dokumentation für die Build-Spezifikation findet sich hier: [[https://​docs.gitlab.com/​ee/​ci/​yaml/​README.html|https://​docs.gitlab.com/​ee/​ci/​yaml/​README.html]] Um ein Projekte für die Ausführung in der ICC vorzubereiten muss der Code als Docker-Image zur Verfügung stehen. Die folgende Vorlage illustriert dies anhand eine Golang-Projektes. Für andere Sprachen müssen die Anweisungen im Abschnitt ''​job_build.script''​ angepasst werden. Eine vollständige Dokumentation für die Build-Spezifikation findet sich hier: [[https://​docs.gitlab.com/​ee/​ci/​yaml/​README.html|https://​docs.gitlab.com/​ee/​ci/​yaml/​README.html]]
  
-Vorlage:+Vorlage:<​code>​
  
-<​code>​ 
 stages: stages:
   - build   - build
Zeile 20: Zeile 19:
 job_build: job_build:
   stage: build   stage: build
-  image: ​nexus.informatik.haw-hamburg.de/​golang:​1.8.3+  image: golang:​1.8.3
   variables:   variables:
     CGO_ENABLED:​ "​0"​     CGO_ENABLED:​ "​0"​
Zeile 30: Zeile 29:
     - mkdir -p /​$CI_PROJECT_NAMESPACE/​$CI_PROJECT_NAME/​     - mkdir -p /​$CI_PROJECT_NAMESPACE/​$CI_PROJECT_NAME/​
     - mv ./​k8s-job-monitor /​$CI_PROJECT_NAMESPACE/​$CI_PROJECT_NAME/​     - mv ./​k8s-job-monitor /​$CI_PROJECT_NAMESPACE/​$CI_PROJECT_NAME/​
 +
 </​code>​ </​code>​
 +
  
 ===== Während des Build-Prozesses Zugriff auf anderes Gitlab-Repo gewähren ===== ===== Während des Build-Prozesses Zugriff auf anderes Gitlab-Repo gewähren =====
Zeile 98: Zeile 99:
 ===== Docker Images in Gitlab Build bauen ===== ===== Docker Images in Gitlab Build bauen =====
  
-Es ist natürlich auch möglich Docker Images in einer Gitlab Pipeline zu bauen. Dazu ist die DOCKER_HOST Variable in der Gitlab Job Beschreibung zu setzen und das stable-dind images als "​service"​ im Job zu setzen. Beispiel für eine .gitlab-ci.yml aus [[https://​gitlab.informatik.haw-hamburg.de/​ail/​haw-world/​blob/​master/​.gitlab-ci.yml|https://​gitlab.informatik.haw-hamburg.de/​ail/​haw-world/​blob/​master/​.gitlab-ci.yml]]:​+Es ist natürlich auch möglich Docker Images in einer Gitlab Pipeline zu bauen. Dazu ist die DOCKER_HOST Variable in der Gitlab Job Beschreibung zu setzen und das stable-dind images als "​service"​ im Job zu setzen. Beispiel für eine .gitlab-ci.yml aus [[https://​gitlab.informatik.haw-hamburg.de/​ail/​haw-world/​blob/​master/​.gitlab-ci.yml|https://​gitlab.informatik.haw-hamburg.de/​ail/​haw-world/​blob/​master/​.gitlab-ci.yml]]:​<​code>​
  
-<​code>​ 
 stages: stages:
     - dockerize     - dockerize
  
 variables: variables:
- DOCKER_HOST:​ "​tcp://​localhost:​2375"​ + ​DOCKER_REGISTRY:​ "git.haw-hamburg.de:5005"
- DOCKER_REGISTRY:​ "nexus.informatik.haw-hamburg.de"​+
  ​SERVICE_NAME:​ "​haw-world"​  ​SERVICE_NAME:​ "​haw-world"​
 + ​DOCKER_TLS_CERTDIR:​ "/​certs"​
  
-createImage:+create_image:
  ​stage:​ dockerize  ​stage:​ dockerize
- ​image: ​nexus.informatik.haw-hamburg.de/​docker:​stable-dind+ ​image: ​docker:19.03.3
  ​services:​  ​services:​
-   ​- ​nexus.informatik.haw-hamburg.de/​docker:stable-dind+   ​- ​docker:19.03.3-dind 
 + tags: 
 +   - dind 
 +   - docker
  ​script:​  ​script:​
-   - docker login -u $NEXUS_USER ​-p $NEXUS_PW ​$DOCKER_REGISTRY +   - docker login -u gitlab-ci-token ​-p $CI_JOB_TOKEN ​$DOCKER_REGISTRY 
-   - docker build -t $DOCKER_REGISTRY/​$SERVICE_NAME:​$CI_PIPELINE_ID . +   - docker build -t $SERVICE_NAME:​latest . 
-   - docker push $DOCKER_REGISTRY/​$SERVICE_NAME:​$CI_PIPELINE_ID+   - docker tag $SERVICE_NAME:​latest ​$DOCKER_REGISTRY/​$CI_PROJECT_NAMESPACE/​$SERVICE_NAME:​latest 
 +   - docker push $DOCKER_REGISTRY/​$CI_PROJECT_NAMESPACE/​$SERVICE_NAME:​latest 
 </​code>​ </​code>​
 +
  
 ===== Deployment einer Applikation aus Gitlab in die ICC ===== ===== Deployment einer Applikation aus Gitlab in die ICC =====
docu/gitlab-ci.1526312594.txt.gz · Zuletzt geändert: 2018/05/14 17:43 von sage