Skip to content

Latest commit

 

History

History
164 lines (101 loc) · 5.55 KB

11_dockerbuild_webhook.md

File metadata and controls

164 lines (101 loc) · 5.55 KB

Lab 11: Code Changes durch Webhook triggern Rebuild auf OpenShift

In diesem Lab zeigen wir den Docker Build Workflow anhand eines Beispiels auf und Sie lernen, wie Sie mit einem Push in das Git Repository automatisch einen Build und ein Deployment der Applikation auf OpenShift starten.

Aufgabe 1: Vorbereitung Github Account und Fork

Github Account

Damit Sie Änderungen am Source Code unserer Beispielapplikation vornehmen können, benötigen Sie einen eigenen GitHub Account. Richten Sie sich einen Account unter https://github.com/ ein, falls Sie nicht bereits über einen verfügen.

Beispiel-Projekt forken

Beispiel-Projekt: https://github.com/appuio/example-php-docker-helloworld

Gehen Sie auf die GitHub Projekt-Seite und forken Sie das Projekt.

Fork

Sie haben nun unter https://github.com/[YourGitHubUser]/example-php-docker-helloworld einen Fork des Example Projektes, den Sie so erweitern können wie Sie wollen.

Deployen des eigenen Forks

Erstellen Sie ein neues Projekt mit Namen [USERNAME]-example4.

Tippoc new-project [USERNAME]-example4

Erstellen Sie für Ihren Fork eine neue App mit folgender Konfiguration:

  • Name: appuio-php-docker-ex
  • Build Strategie: docker
  • Git Repository: https://github.com/[YourGithubUser]/example-php-docker-helloworld.git

Note: Ersetzen Sie [YourGithubUser] mit dem Namen Ihres GitHub Accounts.

Applikation Erstellen Befehl oc new-app --as-deployment-config https://github.com/[YourGithubUser]/example-php-docker-helloworld.git --strategy=docker --name=appuio-php-docker-ex

Mittels Parameter --strategy=docker sagen wir dem oc new-app Befehl nun explizit, er soll im angegebenen Git Repository nach einem Dockerfile suchen und dieses für den Build verwenden.

Nun exponieren Sie den Service der Applikation.

Route Erstellen Befehloc create route edge --service=appuio-php-docker-ex

Aufgabe 2: Webhook auf GitHub einrichten

Beim Erstellen der App wurden in der BuildConfig (bc) direkt Webhooks definiert. Diese Webhooks können Sie von der Web Console kopieren. Gehen Sie dafür via Menüpunkt "Builds" auf den "appuio-php-docker-ex" Build. Sie sehen nun die Webhooks auf der Seite unten.

Webhook

Kopieren Sie die GitHub Webhook URL mit einem Klick rechts auf "Copy URL with Secret".

Klicken Sie in Ihrem GitHub-Projekt auf Settings: Github Webhook

Klicken Sie auf Webhooks: Github Webhook

Fügen Sie einen Webhook hinzu: Github Webhook

Fügen Sie nun die kopierte GitHub Webhook URL ein: Github Webhook

Ab jetzt triggern alle Pushes auf Ihrem GitHub Repository einen Build und deployen anschliessend die Code-Änderungen direkt auf die OpenShift-Plattform.

Aufgabe 3: Code anpassen

Klonen Sie Ihr Git Repository und wechseln Sie in das Code Verzeichnis:

git clone https://github.com/[YourGithubUser]/example-php-docker-helloworld.git
cd example-php-docker-helloworld

Passen Sie das File ./app/index.php bspw. auf Zeile 56 an:

vim app/index.php

Github Webhook

    <div class="container">

      <div class="starter-template">
        <h1>Hallo <?php echo 'OpenShift Techlab'?></h1>
        <p class="lead">APPUiO Example Dockerfile PHP</p>
      </div>

    </div>

Pushen Sie Ihren Change:

git add .
git commit -m "Update hello message"
git push

Als Alternative können Sie das File auch direkt auf GitHub editieren: Github Webhook

Sobald Sie die Änderungen gepushed haben, startet OpenShift einen Build des neuen Source Code.

oc get builds

und deployed anschliessend die Änderungen.

Aufgabe 4: Rollback

Mit OpenShift lassen sich unterschiedliche Software-Stände aktivieren und deaktivieren, indem einfach eine andere Version des Image gestartet wird.

Dafür werden die Befehle oc rollback und oc rollout verwendet.

Um ein Rollback auszuführen, brauchen Sie den Namen der DeploymentConfig:

oc get dc

NAME                   REVISION   DESIRED   CURRENT   TRIGGERED BY
appuio-php-docker-ex   4          1         1         config,image(appuio-php-docker-ex:latest)

Mit dem folgenden Befehl können Sie nun ein Rollback auf die Vorgänger-Version ausführen:

oc rollback appuio-php-docker-ex
#3 rolled back to appuio-php-docker-ex-1
Warning: the following images triggers were disabled: appuio-php-docker-ex:latest
  You can re-enable them with: oc set triggers dc/appuio-php-docker-ex --auto

Sobald das Deployment der alten Version erfolgt ist, können Sie über Ihren Browser überprüfen, ob wieder die ursprüngliche Überschrift Hello APPUiO angezeigt wird.

Tipp: Automatische Deployments neuer Versionen sind nun für diese Applikation deaktiviert, um ungewollte Änderungen nach dem Rollback zu verhindern. Um das automatische Deployment wieder zu aktivieren, führen Sie den folgenden Befehl aus:

oc set triggers dc/appuio-php-docker-ex --auto

Ende Lab 11

Applikationstemplates →

← zurück zur Übersicht