我很想了解关于 Java 中 Spring 框架的更多内容。借 Spring 之势来构建企业应用程序,其简单性使得它非常有趣。于是我着手实践了一个简单的教程,并将所实现的 Spring 应用程序部署到了 Bluemix 云计算平台上。
Spring 官方在 Spring Boot 与 Docker 教程中提供了一个简单的,并带有一个应用程序接口(REST API) 的 Spring Boot 应用程序——“hello world”。使用 Maven 和 Gradle,我们不仅可以构建 Java 应用程序,还可以构建一个可部署到 Bluemix 的 Docker 镜像。
在 Spring 的这一教程中,他们指出,只需要 15 分钟的就能完成教程内容。对我来说, 15 分钟内确实能搞定教程中的内容,因为我已经准备好了 JDK 1.8,并且 Maven 和 Docker 也已经安装好了。而如果你没有这些先决条件,你就需要先部署好应用程序,这些动作只需要不超过 5 分钟的额外时间。
在此,我不会重复 Spring 教程上的所有步骤,但下列动作基本上就是你所需要做的:
- 克隆一个 Github 项目。并使用应用程序的“完整”版本。
- 通过 Maven 或 Gradle 构建项目。
- (可选步骤)在本地运行应用程序:运行 Tomcat 与您的应用程序中附带的内置 jar 文件。
- 通过 Maven 或 Gradle 插件构建 Docker 镜像。
本教程介绍了如何将镜像推送到 Docker Hub(通过“docker push springio / gs-spring-boot-docker”)。要将图像推送到 Bluemix,请按照下面的步骤进行操作。
> cf login
> cf ic login
> docker tag springio/gs-spring-boot-docker registry.ng.bluemix.net/nheidloff/gs-spring-boot-docker <- 更改命名空间
> docker push registry.ng.bluemix.net/nheidloff/gs-spring-boot-docker <- 更改命名空间
完成以上操作后,您将看到 Bluemix 上的情况如下图。
为了运行一个容器,需要调用这些命令:
> cf ic run --name gs-spring-boot-docker -p 8080:8080 -d -t registry.ng.bluemix.net/nheidloff/gs-spring-boot-docker <- 更改命名空间
> cf ic ip request
> cf ic ip list -a
> cf ic ip bind 134.168.15.128 gs-spring-boot-docker < - 更改IP
还有另一种选择,您可以使用 Bluemix UI 来创建容器。选择新的镜像,定义端口 8080 并绑定一个IP地址。
最后,通过“你的IP地址:8080”在 Web 浏览器中打开相应的应用程序。