javascript
openshift使用_OpenShift DIY:使用Gradle构建Spring Boot / Undertow应用程序
openshift使用
由于此錯(cuò)誤, Gradle 1.6是在OpenShift上運(yùn)行的最后一個(gè)受支持的Gradle版本。 但是從Gradle 2.2開(kāi)始,這不再是問(wèn)題,因此,使用自己動(dòng)手做墨盒,在OpenShift上運(yùn)行最新的Gradle不再是問(wèn)題。 DIY盒帶是一種實(shí)驗(yàn)性盒帶,提供了一種在OpenShift上測(cè)試不受支持的語(yǔ)言的方法。 它提供了最小限度的自由形式的支架,將墨盒的所有細(xì)節(jié)留給了應(yīng)用程序開(kāi)發(fā)人員。
這篇博客文章說(shuō)明了在Undertow上運(yùn)行Spring Boot 1.2和Java 8的用法,它被支持作為T(mén)omcat的輕量級(jí)替代方案。 起來(lái)并運(yùn)行不超過(guò)10分鐘。
先決條件
在開(kāi)始構(gòu)建應(yīng)用程序之前,我們需要安裝一個(gè)OpenShift免費(fèi)帳戶和客戶端工具。
步驟1:建立DIY應(yīng)用程式
要使用客戶端工具創(chuàng)建應(yīng)用程序,請(qǐng)鍵入以下命令:
rhc app create <app-name> diy-0.1此命令使用DIY盒帶創(chuàng)建應(yīng)用程序,并將存儲(chǔ)庫(kù)克隆到目錄。
步驟2:刪除模板應(yīng)用程序源代碼
OpenShift創(chuàng)建一個(gè)可以自由刪除的模板項(xiàng)目:
git rm -rf .openshift README.md diy misc提交更改:
git commit -am "Removed template application source code"步驟3:從GitHub提取源代碼
git remote add upstream https://github.com/kolorobot/openshift-diy-spring-boot-gradle.git git pull -s recursive -X theirs upstream master步驟4:推送變更
基本模板已準(zhǔn)備好推送到OpenShift:
git push初始部署(構(gòu)建和應(yīng)用程序啟動(dòng))將花費(fèi)一些時(shí)間(最多幾分鐘)。 后續(xù)部署要快一些:
remote: BUILD SUCCESSFUL remote: Starting DIY cartridge remote: XNIO NIO Implementation Version 3.3.0.Final remote: b.c.e.u.UndertowEmbeddedServletContainer : Undertow started on port(s) 8080 (http) remote: Started DemoApplication in 15.156 seconds (JVM running for 17.209)現(xiàn)在,您可以瀏覽到: http://<app-name>.rhcloud.com/manage/health ,您應(yīng)該看到:
{"status": "UP", }登錄OpenShift網(wǎng)絡(luò)帳戶并導(dǎo)航到“ Applications您應(yīng)該會(huì)看到一個(gè)新帳戶:
引擎蓋下
為什么要DIY?
可以將Spring Boot應(yīng)用程序部署到OpenShift上的Tomcat盒中。 但是目前沒(méi)有Undertow和Java 8支持,因此選擇了DIY。 DIY有局限性:例如,無(wú)法縮放。 但這是嘗試和玩新事物的完美選擇。
應(yīng)用結(jié)構(gòu)
該應(yīng)用程序是一個(gè)常規(guī)的Spring Boot應(yīng)用程序,可以使用http://start.spring.io進(jìn)行引導(dǎo)。 使用的構(gòu)建系統(tǒng)是Gradle,包裝類型是Jar。
從Spring Boot 1.2開(kāi)始,支持Undertow輕量級(jí)高性能Servlet 3.1容器。 為了使用Undertow代替Tomcat,必須將Tomcat依賴項(xiàng)與Undertow的依賴項(xiàng)交換:
buildscript {configurations {compile.exclude module: "spring-boot-starter-tomcat"} } dependencies {compile("org.springframework.boot:spring-boot-starter-undertow") }特定于OpenShift的配置– application-openshift.properties –當(dāng)前包含日志記錄配置:
logging.file=${OPENSHIFT_DATA_DIR}/logs/app.logOpenShift action_hooks
OpenShift在部署過(guò)程中的特定位置執(zhí)行動(dòng)作掛鉤腳本文件。 所有掛鉤都放置在應(yīng)用程序存儲(chǔ)庫(kù)的.openshift / action_hooks目錄中。 文件必須是可執(zhí)行的。 在Windows中,可以在Git Bash中使用以下命令:
git update-index --chmod=+x .openshift/action_hooks/*部署應(yīng)用程序
部署腳本下載Java 8和Gradle 2.2,創(chuàng)建一些目錄。 下載Gradle的方法如下:
if [ ! -d $OPENSHIFT_DATA_DIR/gradle-2.2.1 ]thencd $OPENSHIFT_DATA_DIRwget https://services.gradle.org/distributions/gradle-2.2.1-bin.zipunzip gradle-2.2.1-bin.ziprm -f gradle-2.2.1-bin.zip fi運(yùn)行腳本后,將在$OPENSHIFT_DATA_DIR創(chuàng)建以下目錄:
gradle gradle-2.2.1 jdk1.8.0_20 logs此外,該腳本還會(huì)導(dǎo)出正確運(yùn)行Java 8 / Gradle構(gòu)建所需的幾個(gè)環(huán)境變量。 GRADLE_USER_HOME是最重要的一個(gè),因?yàn)樗O(shè)置主目錄,所有Gradle運(yùn)行時(shí)文件都將存儲(chǔ)在此目錄中,包括用于構(gòu)建應(yīng)用程序的已下載依賴項(xiàng)。
deploy腳本的最后一個(gè)命令是運(yùn)行Gradle任務(wù)以創(chuàng)建一個(gè)jar存檔,可以使用java -jar commnad從命令行執(zhí)行該存檔(請(qǐng)參見(jiàn)下一段):
gradle bootRepackage啟動(dòng)應(yīng)用程序
deploy腳本成功完成后, build目錄將包含一個(gè)組裝了Spring Boot應(yīng)用程序的jar。 該應(yīng)用程序已啟動(dòng),并綁定到OpenShift提供的服務(wù)器地址和端口。 另外,提供了概要文件名稱,因此可以加載其他屬性文件。 運(yùn)行該應(yīng)用程序的最終命令如下:
nohup java -Xms384m -Xmx412m -jar build/*.jar --server.port=${OPENSHIFT_DIY_PORT} --server.address=${OPENSHIFT_DIY_IP} --spring.profiles.active=openshift &參考資料
- 可以找到本文中使用的項(xiàng)目源代碼。
在GitHub上: https : //github.com/kolorobot/openshift-diy-spring-boot-sample - Spring Boot文檔: http : //docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#cloud-deployment-openshift
- 創(chuàng)建本文時(shí)使用了一些OpenShift參考:
- https://blog.openshift.com/run-gradle-builds-on-openshift
翻譯自: https://www.javacodegeeks.com/2015/02/openshift-diy-build-spring-boot-undertow-application-gradle.html
openshift使用
總結(jié)
以上是生活随笔為你收集整理的openshift使用_OpenShift DIY:使用Gradle构建Spring Boot / Undertow应用程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 我的安卓手机连不上苹果热点(我的安卓手机
- 下一篇: java ee jsp_EE JSP:使