Tipps und Tricks zur App Entwicklung
Aus dem Nähkästchen eines ScaleIt-Entwicklers...
Tipp #1: Update Rancher-Template einer App
Wenn ein App-Release fertig gestellt wurde, d.h. es wurde vom Entwickler getestet und eine neue Rancher-Template-Version erstellt (unter Resources/AppPools/Rancher1.6/<appname>), dann muss das Rancher-Template im App-Pool-Git-Server aktualisiert werden.
Beispiel:
- Hostname der ScaleIT-Instanz: scaleit01.intern
- AppName: de-ondics-meineapp
- Verzeichnis der App: /home/user/scaleit/de-ondics-meineapp
- Verzeichnis der Rancher-Templates: /home/user/scaleit/rancher-templates
Das Rancher-Temnplate der App im App-Pool im Beispiel wie folgt aktualisiert werden:
cd /home/user/scaleit # git -c http.sslVerify=false clone https://catalog-app-pool.scaleit01.intern/admin/de-ondics-meineapp git clone https://scaleit01.intern:8081/admin/de-ondics-meineapp cd de-ondics-meineapp/templates cp -rp ../../de-ondics-meineapp/Resources/AppPools/Rancher1.6/* . git config user.name "admin" git config user.email "admin@scaleit" git add . git commit -m "update neue template-version" -a # git -c http.sslVerify=false push origin master git push origin master
Und fertig. Das neue App-Template ist nun im Rancher verfügbar und wird im Rancher nach einer Katalog-Aktualisierung angezeigt.
Die Angaben mit -c http.sslVerify=false sind nur erforderlich, wenn der Zugriff nicht über Port 8081 erfogen kann.
Nicht vergessen, dass die Docker-Images ebenfalls in den App-Pool geschoben werden müssen. Das geht am besten mit im App-Root-Verzeichnis mit
docker-compose push
Dazu wird eine docker-compose.yml Datei benötigt, die nur Infos zum Build-Verzeichnis und zum Imagenamen enthält, z.B.
version: "3.5" services: build: DomainSoftware/myapp image: scaleit01.intern:5000/de-ondics-meineapp-myapp:1.0
Wichtig, dass die Versionsnummern des Images und den Rancher-Templates übereinstimmen, sonst hat Rancher ein Problem beim App-Start.
Tipp #2: Schnellere App-Tests mit Rancher
Aufgabe: Eine App im Source wird geändert und soll im Rancher getestet werden.
Normaler Weg:
- Container Images bauen
- In App-Pool pushen
- Update in Rancher-Templates machen (neue Versionsnummer)
- Update in GIT committen und pushen
- In Rancher: Menü Catalog: aktualisieren
- in Rancher: Menu Stacks -> User: App-upgraden
Tipp & Trick:
- Container Image bauen und pushen (mit Makefile: make build push)
- In Rancher: Menu Stacks -> User -> App -> Service auswählen -> Service Upgrade: Checkbox "Image immer von der Erstellung neu laden" auswählen. Dann Upgrade für diesen Container durchführen.
Damit wird die Turnaround-Zeit erheblich verkürzt und das App-Testen macht mehr Spass, weil es schneller geht.