通过 Bluemix DevOps 管道部署 Docker 容器

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前, 星球 内第2个项目《仿小红书(微服务架构)》正在更新中。第1个项目:全栈前后端分离博客项目已经完结,演示地址:http://116.62.199.48/。采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 255 小节,累计 39w+ 字,讲解图:1716 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 1300+ 小伙伴加入,欢迎点击围观

除了 Docker 和 IBM Containers CLI (命令行界面)之外,您还可以使用 IBM Bluemix DevOps 管道在服务器上构建映像和运行容器。

DevOps 管道有多个阶段。通常在第一步中,您构建应用程序代码,例如,通过 Maven 构建 Java 应用程序。这可以在将代码推送到源代码控制系统(DevOps 中的 Git 或 GitHub)时手动或自动触发。在第二阶段,可以构建 Docker 镜像并将其推送到 Bluemix 中用户的访问控制镜像注册表中。在另一个阶段,可以部署应用程序,或者换句话说,可以运行容器。您还可以利用管道中的其他功能,例如全球化或静态代码安全分析。阅读文章 DevOps for containers 和文档 How to: Set up continuous delivery for IBM Containers 了解更多详细信息。

下面是有关如何部署尽可能简单的 Java (Liberty) 应用程序的快速示例。第一阶段构建应用程序,第二阶段创建镜像,第三阶段运行容器。


使用此功能非常简单。我的项目中只有一件小事需要更改。我的 Dockerfile 在根目录中。 Maven 创建了 war 文件并将其放在作为第二阶段基础的目标目录中。无法创建 Docker 映像,因为 Dockerfile 不在第二阶段的同一工作目录中。因此,我向 pom.xml 添加了一些代码,以将 Dockerfile 复制到目录“target”中。在此之后,我可以在创建阶段时使用 DevOps UI 中的所有默认值。我只需要定义图像和容器的名称。












作为 Maven 构建的结果,Dockerfile(和 server.xml)被复制到目标目录中。


Dockerfile 很简单,引用了同一目录下的server.xml 和war。





在 server.xml 中,我定义使用端口 80 和 443。