Jak spustit Spring Boot aplikaci na OpenShift? Protože Spring Boot dokumentace aktuálně obsahuje zastaralé informace, vytvořil jsem toto howto. Mimochodem: Konfigurační soubory používají "openshift" Spring a Maven profil (myslím si, že to je velice užitečné). Pokud profily nepoužíváte, nemusíte konfigurační soubory měnit, toto nastavení nebude mít na funkčnost aplikace vliv. Pokud máte jinak pojmenované profily (jako "prod" nebo "Production" apod.), jednoduše konfigurační soubory změňte.
Nejprve vytvořte DIY aplikaci:
rhc app create OPENSHIFT_APPLICATION_NAME diy-0.1
V konzoli získáte GIT_REMOTE_URL.
Zkopírujte do Vaší aplikace .openshift adresář a zavolejte:
git remote add openshift -f GIT_REMOTE_URL
Přidejte tyto soubory:
.openshift/action_hooks/build:
#!/bin/bash cd $OPENSHIFT_REPO_DIR mvn clean package -P openshift -s .openshift/settings.xml -DskipTests=true
.openshift/action_hooks/start:
#!/bin/bash cd $OPENSHIFT_REPO_DIR nohup java -jar -Dspring.profiles.active=openshift target/*.jar --server.port=${OPENSHIFT_DIY_PORT} --server.address=${OPENSHIFT_DIY_IP} &
.openshift/action_hooks/stop:
#!/bin/bash source $OPENSHIFT_CARTRIDGE_SDK_BASH PID=$(ps -ef | grep java.*\.jar | grep -v grep | awk '{ print $2 }') if [ -z "$PID" ] then client_result "Application is already stopped" else kill $PID fi
.openshift/settings.xml:
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository>$OPENSHIFT_DATA_DIR</localRepository> </settings>
A nakonec zavolejte:
git update-index --chmod=+x .openshift/action_hooks/build git update-index --chmod=+x .openshift/action_hooks/start git update-index --chmod=+x .openshift/action_hooks/stop git add . git commit -m "moved to openshift" git push -f openshift master:master
EDIT: Přidal jsem GitHub repozitář s aplikovanými výše uvedenými kroky: https://github.com/jirkapinkas/spring-boot-openshift
Školení mi pomohlo ujasnit si jak má správně probíhat testování kódu, představilo užitečné knihovny a nástroje. Vše bylo podáno zábavnou formou, takže nebyl problém udržet pozornost. Navíc byl výhodou dostatek
Jedno z nejlepších školení za poslední roky. Kromě seznámení se Springem apod. mě velmi příjemně překvapila hluboká znalost probírané látky a schopnost ji srozumitelně vysvětlit v případě ad hoc dotazů.
Přestože jsem Cčkař, tak jsem se na školení JUnit dozvěděl nové věci. Zejména co se týče metodiky jednotkového testování a některých odborných termínů.