日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在SAP云平台上部署和运行Docker应用

發布時間:2023/12/19 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在SAP云平台上部署和运行Docker应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

容器技術,Docker,虛擬化,這些名詞誕生盡管有很長一段時間了,但是在云原生開發領域仍舊熱度不減。甚至連SAP賴以成名的ABAP Netweaver,如今也踏上了容器化的上云探索之路,比如下面這張來自SAP社區的一篇博客:

Proof of Concept: Deploying ABAP in Kubernetes

今天咱們暫時不聊ABAP的容器化,先從最簡單的概念開始。網絡上關于Docker容器的技術文章多如牛毛,Jerry也就不再重復了,我還是緊扣SAP技術和SAP解決方案來寫。

如果有一個已經能夠正常運行的Java應用,可以將其以Docker容器的方式,部署且運行在SAP云平臺上嗎?當然可以,而且只需要簡單的幾個命令行即可。

本文接下來的步驟是針對那些聽說過Docker容器技術,但尚未動手實踐過的朋友。通過閱讀本文,可以了解將Java應用容器化并部署到SAP云平臺運行的大致步驟。您也可以根據本文的步驟動手試一試,只需要在本地搭一個最簡單的Java開發環境,安裝Docker客戶端和申請一個SAP云平臺的trial賬號即可。

(1) 首先得有一個能在本地正常運行的SpringBoot應用。如果沒有,百度之然后自己動手做一個。

如果實在不想自己動手,從Jerry的github倉庫上克隆一個下來也行:

本地配置好maven和JDK之后,直接用命令行啟動它:

mvn spring-boot:run

你會看到Tomcat started on port 8000的提示,意思是該應用已經成功啟動,監聽在本地端口8000上。

瀏覽器里輸入localhost:8000/product, 看到Hello World. 至此,我們就有了一個本地正常運行的SpringBoot應用了,下一步是將其打包成Docker鏡像。

(2) 在SpringBoot項目里新建一個名叫Dockerfile的文件,輸入以下內容:

FROM openjdk:8-jdk-alpine VOLUME /tmp VOLUME /log EXPOSE 8080 ADD target/prolikeService.jar app.jar ENV JAVA_OPTS="-Dserver.port=8080" ENTRYPOINT exec java $JAVA_OPTS -jar /app.jar

這實際是一個指令文件,Docker客戶端會根據里面的內容,制作一個Docker鏡像。

簡要介紹每一行內容的含義。

第一行:指定待制作的鏡像是基于名叫openjdk:8-jdk-alpine的鏡像,在Docker Hub網站上能找到更多關于該鏡像的說明:
https://hub.docker.com/_/openjdk

第二行和第三行:定義兩個名叫tmp和log的持久化存儲。容器運行時產生的數據,隨著容器的銷毀而銷毀,但有時我們又希望這些數據能夠持久化保存,比如需要分析某個容器運行時產生的日志文件,這時可以使用Dockerfile里VOLUME關鍵字提供的容器持久化技術,創建所謂的“卷”,將容器應用運行時寫入數據的目錄,映射到宿主機上的某個目錄下。

如果一個容器尚處在運行狀態,我們可以用命令行進入容器內部,查看log文件夾里的運行日志文件

docker exec -it 8302db78f838 /bin/sh

如果該容器已經銷毀,我們就可以到宿主機的/var/lib/docker/volumes目錄下,查看持久化的日志文件:

第五行:把當前項目通過maven打包而成的jar包拷貝到容器內部,重命名為app.jar
第六~七行:設置JVM啟動參數,暴露8080端口給外部。

Dockerfile文件編寫完畢后,使用命令行制作鏡像:

docker build -t i042416/springbootexample:v1 .

v1代表該鏡像的標簽,命令行尾部的句號代表當前目錄。

鏡像制作完畢后,使用命令行將制作好的鏡像推送到Docker Hub網站上(有點像我們本地用git客戶端提交代碼到Github上):

docker push i042416/springbootexample:v1

成功之后,能夠在Docker Hub上看到推送好的鏡像:

https://hub.docker.com/repository/docker/i042416/springbootexample

這樣,稍后SAP云平臺就能從Docker Hub上拉取這個鏡像了。

(3) 登錄SAP云平臺CloudFoundry環境,使用命令行部署, 用參數–docker-image指定我們剛剛上傳到Docker Hub上的鏡像名稱,部署生成的應用名叫jerryjavadocker.

cf push jerryjavadocker --docker-image i042416/springbootexample:v6

因為我的容器鏡像修改過好幾次,所以標簽從v1升到了v6.

成功部署,應用的狀態顯示成了running:

在SAP云平臺也能看到這個成功部署的應用,處于運行狀態:

運行這個成功部署好的Docker應用,和我們在本地mvn spring-boot:run的效果一樣。至此這個SpringBoot應用的容器化和SAP云平臺的部署就成功了。

順便說一句,昨天Jerry的文章 SAP新一代全棧開發工具:SAP Business Application Studio 推送之后,有一位朋友在文章下面留言:

關于傳統ABAP開發人員如何學習SAP Cloud Platform相關技術,Jerry后續如果有機會的話會專門寫一篇短文介紹自己的做法,敬請期待。

感謝閱讀。

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

總結

以上是生活随笔為你收集整理的在SAP云平台上部署和运行Docker应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。