总结:如果您上海研究院的同事想参加本次内部培训,您可以联系他们。 第三行指定生成新镜像文件的执行命令。 顺便说一句,尽管它本月被微软收购,但用户体验丝毫没有改变,而且仍然很棒。 对于其他替代用途,请参阅 Microsoft 收购替代用途期间撰写的文章。
2018年只剩30天了。 2017年的最后一天,杰瑞设定了他的下一个目标。 本微信公众号保证2018年每周至少公开发表一篇SAP原创技术文章。
从2018年Jerry后台统计的文章数量来看,这个目标提前实现了。 为了感谢大家的支持,2018年的最后一天,Jerry与SAP成都研究院共同创作了一本合集:《2018年SAP成都研究院XX篇原创文章合集》即将发布。 2018年研究所同事发表的论文。
Jerry于11月中旬前往SAP上海研究院参加Kubernetes内部培训(更多信息请参见我们之前的文章《站在巨人肩膀上的牛顿:Kubernetes和SAP Kyma》)。 如果您SAP上海研究中心的同事想参加本次内部培训,请联系我的同事杨凯蒂。
为了避免很快忘记三位老师所教的知识,你需要为自己找一些练习来帮助你记住所学的知识。
当Jerry于2014年底加入SAP CRM Fiori开发团队时,我们开发的CRM Fiori应用程序仍然部署在经典的SAP Netweaver中。 有关更多信息,请参阅我的文章部署 SAP Fiori 应用程序的 3 种方法。
后来,我发现了Salesforce的云平台Heroku,并效仿很多程序员的榜样,在github上开设了博客。 之后接触到了SAP自己的云平台,自然决定尝试一下。 在以下平台上部署 SAP UI5:
步骤逐步在 Heraku 上托管 UI5 应用程序
逐步在 Github 上托管 Web 应用程序
部署 将您的应用程序添加到 Cloud Foundry,您可以从本地 - 本地 ABAP 系统访问资源
既然您已经了解了 Kubernetes,请运行您的 SAP UI5 Kubernetes 上的应用 让我们开始吧。
我用来部署的UI5应用程序叫做Jerry's Service Order。 这是一个典型的 Master-Detail 风格的应用程序。 左侧的主列表是所有服务订单的列表。 选择一项,它就会显示在右侧。 详细信息页面显示所选服务订单的详细信息。
这个 UI5 应用程序看起来如上图所示。 为清楚起见,显示的所有数据均来自项目。 读取 json 文件,但不支持创建新订单或修改订单。 该应用程序可以在我的 github 上找到:
https://github.com/i042416/je...
正如本文标题所示,最终目标是在此练习后,您将能够在 Kubernetes 上运行 UI5 应用程序,因此第一步是能够在容器内运行它。 与我们对 SAP Kubernetes 的内部培训类似,我们选择了非常流行的 Docker。 Welcome的容器引擎将用作本次Kubernetes练习的容器技术。
关于 Docker 的概述和安装,请参见阮一峰的文章:Docker 入门教程
http://www.ruanyifen.orgg.com/blo...
为什么要使用Docker容器?以下摘自阮一峰的博客:
“Docker是一个Linux容器包,提供了简单易用的容器使用界面,是目前最流行的Linux容器,就像将程序的依赖项打包到文件中,创建一个虚拟容器,然后在该虚拟容器上运行程序一样。 Docker可以让用户轻松创建和使用容器,甚至可以将自己的应用程序放置在容器中,而不必担心环境问题。 您可以对其进行版本控制、复制、共享和修改,就像管理常规代码一样。 ”
Jerry 将 SAP UI5 中运行应用程序的整个过程分为三个部分。 步骤:
1.在本地容器中运行UI5应用
2.创建包含UI5的本地容器。 应用到新镜像
3.将本地镜像上传到Docker hub并下载进行测试。
详细步骤如下。
1.让你的UI5应用程序在本地容器中运行
如果你能做的就是运行Docker的Hello World(事实上,两周前) Jerry(我以前就是这个水平,囧),当你收到这个需求时,你从哪里开始?
当然,你从一个包含可以运行UI5应用程序的Web服务器的镜像开始。 在这里,我在我的 Docker hub 中选择了一个拥有 10,4k star 的 Nginx 镜像。
使用以下命令直接运行镜像:
docker run -it nginx
使用docker ps获取实例化的容器ID。
接下来,进入正在运行的容器并运行 shell 命令。 :
docker exec -it bbc5d48a761c /bin/sh
# 出现提示时,选择进入目录容器: /usr/share/nginx/html
如果你能找到一种方法将 github 上的 UI5 应用程序的文件复制到这个目录中,你可以执行以下操作它将看起来像这样。 在本地 Docker 容器中运行 UI5 应用程序的目的。
可以通过多种方式将 Github 中的资源下载到 Docker 容器内的指定目录。 这里Jerry使用了我认为最简单的方法。 即我们使用Docker Volume技术将主机上的目录A以卷的形式连接到容器内部的html文件夹。 这样您就可以将 github 仓库的 webapp 文件夹直接下载到主机上的文件夹 A 中。 该文件夹现在将自动以卷的形式出现在容器内的映射目录中。
docker run -d -p 1081:80 -v pwd/webapp:/usr/share/nginx/html/webapp –name jerry-自定义 nginx
使用参数 -p 1081:80 通过端口 1081 公开 Nginx 服务。 因此,这次我们将使用http://localhost:1081。 测试新的 Started 容器实例。
再次运行docker exec进入docker容器并确保/usr/s已设置。hare/nginx/html 文件夹包含预期的 UI5 应用程序。
通过在浏览器中键入 localhost:1081/webapp 来验证您是否可以成功访问 UI5 应用程序。 此时,您的应用程序已在本地 Docker 容器中成功运行。
2.在新镜像中创建一个包含UI5应用程序的本地容器。
这个本地Docker实例是现在已经没有办法给其他人用了。 因此,您必须首先使用 dockerfile 创建包含您的 UI5 应用程序的 Docker 镜像,然后将其上传到 Docker Hub 以便其他用户可以下载。
创建一个随机文件夹,例如jerry-build,在其中放置一个webapp文件夹,并创建一个包含3行内容的dockerfile文件。
从 nginx:stable 复制
webapp/ /usr/share/nginx/html/webapp/
运行 ls [ k4] la /usr/share/nginx/html/webapp*
这三个指令从语义上来说并不难理解。 FROM 命令的第一行告诉 Docker 镜像构建例程使用 nginx 的稳定版本。 用作基础映像来构建新映像。 第二行COPY命令负责将webapp文件夹中的所有UI5资源文件复制到nginx docker镜像的对应目录中。 第 3 行 RUN 通过运行命名的 shell 命令 ls 生成一个新的映像文件。
更多关于dockerfile语法的信息,请参见Docker官方文档:
https://docs.docker.com/engin...
运行命令 Docker 构建d.最后。 代表“当前目录”。
查看上面“Builded successfully(构建成功)”的输出信息后,设置参数-t jerry[添加k4]nginx-镜像。 :1.0重新构建名为jerry-nginx-image的镜像:
如果构建成功,设置参数-p发布使用新端口 1082 的图像:
docker run -d -p 1082:80 jerry-nginx-image:1.0
目前 localhost:1082/webapp 也可以访问 UI5 应用程序。
使用 Docker 镜像显示构建的镜像并将其推送到 Docker hub。
3.将本地镜像上传到Docker hub
使用Docker hub与使用github几乎相同。 顺便说一句,GitHub 今年 6 月被微软收购,但用户体验完全没有改变,仍然很棒。
有关 github 的其他替代用途,请参阅 Jerry 的文章“- Github 的替代用途”,该文章是在 Github 被 Microsoft 收购时撰写的。
首先在Docker Hub上注册一个账号:
新建一个仓库:
获取Namei042416 /ui5-nginx:
新创建的空仓库会是这样的:
使用docker附: 本地运行Docker 容器 ID:
使用 commit 命令将更改发送到此本地容器(类似于 git commit):
docker commit 53de4188b702 i042416/ui5-nginx
本地发送的镜像现在准备推送到 Docker hub。
运行命令docker登录。
将应用部署到CloudFoundry的朋友可以部署docker登录。 >strong>一个例子是cf登录(下面是cf登录的屏幕截图):
最终步骤是使用 docker Push。 将本地镜像推送到 Docker hub。
您可以在Docker hub中更新新建的仓库并观察本地推送情况。 记录和镜像尺寸。
现在您可以通知您的朋友在他们的计算机上使用此图像。 当然,你也可以删除电脑上的本地镜像,然后使用docker run来运行。
在这两种情况下,本地图片检索都会失败,并出现如下提示:本地未找到图片'i042416/ui5-nginx:latest'。然后,观察远程图片下载过程。 /p>
使用端口 1080 启动基于映像 i042416/ui5-nginx 的新容器。 /p>
localhost:1080/webapp 有效很好:
<sdocker Inspection命令确认启动的容器确实是基于镜像i042416/ui5-nginx。
在本主题的后面部分,我们将使用此 i042416/ui5-nginx 映像来开始使用 Kubernetes。 敬请关注。
阅读更多内容
在 Microsoft 收购 Github 后编写 - Github 的替代用途
部署 SAP Fiori 的 3 种方法应用
站在巨人的肩膀上:牛顿:Kubernetes 和 SAP Kyma
更多 Jerry 原创文章,请访问我们的公众号关注王子熙。
评论前必须登录!
注册