OpenShift构建与部署自动化示例1

本文介绍了如何将一个简单的MyBank JavaWeb应用通过Maven构建,使用Docker进行容器化,包括Git克隆代码、安装环境、编译部署、创建Dockerfile、构建镜像并测试,最终将镜像推送至仓库的详细过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个Java应用的容器化之旅

本节把一个简单的 Java Web应用 My Bank进行容器化。 Mybank是一个非常简单和
典型的 Java Web应用。

  • 它包含了Java源代码、JSP文件、图片和CSS等静态资源文件。
  • My Bank的项目结构是基于 Maven的要求布置的,通过 Maven可以编译和构建Mybank的部署包——WAR包。
  • 和其他的应用程序一样, Mybank在开发过程中,它的所有源代码都被上传到了配置管理库进行版本控制。这里所用的配置管理服务器是 Github.

下面开始容器化这个应用。

(1)首先安装源代码工具Git

[root@bastion ~]# yum -y install git

(2)从Github上下载示例的Java应用源代码

[root@bastion ~]# git clone https://github.com/nichochen/mybank-demo-maven.git

(3)准备编译和构建环境。安装应用构建所需的Java开发工具包JDK及构建工具 Maven

[root@bastion ~]# yum -y install maven

(4)通过构建工具编译及构建应用。

[root@bastion ~]# cd mybank-demo-maven/
[root@bastion mybank-demo-maven]# mvn package

构建完毕后,将在 target目录下生成一个WAR包ROOT.war。

[root@bastion mybank-demo-maven]# ls target/
classes         maven-status  ROOT.war          test-classes
maven-archiver  ROOT          surefire-reports

(5)选择满足应用运行要求的基础容器镜像,或者从基础的操作系统镜像开始安装和构建。为了方便,这里选择 Tomcat7的官方镜像 tomcat:7.0.70-jre7- alpine。一般推荐预先把镜像下载到本地,以方便本地调试。

[root@bastion mybank-demo-maven]# docker pull tomcat
[root@bastion mybank-demo-maven]# docker images
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
REPOSITORY                 TAG      IMAGE ID       CREATED      SIZE
docker.io/library/tomcat   latest   24207ccc9cce   4 days ago   692 MB

(6)编写 Dockerfile。这个例子中我们的逻辑比较简单,就是把构建好的应用部署包拷贝到发布目录。 Dockerfile 7示例如下。

[root@bastion mybank-demo-maven]# mkdir test
[root@bastion mybank-demo-maven]# cd test/
[root@bastion test]# cat Dockerfile
FROM tomcat:latest
ADD ../target/ROOT.war /usr/local/tomcat/webapps/mybank.war

(7)执行 Docker Build构建镜像。把镜像命名为 mybank- tomcat.。在没有指定镜像的tag的请求下,默认的标签为latest。

[root@bastion test]# docker build -t mybank-tomcat .
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
STEP 1: FROM tomcat:latest
STEP 2: ADD ../target/ROOT.war /usr/local/tomcat/webapps/mybank.war
STEP 3: COMMIT mybank-tomcat
5f45d5e7f3b39e7942e56042545731e02e0e9c6e69fd7776083217f1e1f2ebde

构建完毕后,可以看见刚才Docker Build生成的新镜像

[root@bastion test]# docker images | grep mybank-tomcat
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
localhost/mybank-tomcat    latest   5f45d5e7f3b3   About a minute ago   693 MB

(8)测试镜像。通过 docker run命令测试新创建的镜像。这里通过参数-p8080:8080把容器的8080端口映射到主机的8080端口,以方便测试。

[root@bastion test]# docker run -it --rm -p 8080:8080 mybank-tomcat

容器启动完毕后,可以通过curl或浏览器测试应用是否工作正常。如果一起正常,通过浏览器访问 My Bank的主页就会看到一只可爱的小猪储蓄罐了。

[lab-user@bastion ~]$ curl http://bastion:8080/mybank/
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.or                                                                        g/TR/html4/loose.dtd">
<html>
<head>
<title>欢迎</title>
<link href="css/style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
        <div class="title">
​```
    <div style="float: left;margin-left:20px;">World Bank | 世界银行</div>

    <div style="float: right;margin-right:20px;">服务器:
            f3f4be7b33d6
            /10.88.0.2</div>
    </div>
    <div class="main">
    <img style="margin:50px;" src="images/small_bank.png"><br>
            <div class="linkbox"><a href="offices.jsp">--服务网点--</a></div                                                                        >
    </div>
​```
</body>
</html>

(9)推送镜像。测试通过后,下一步将把镜像发布到相应的镜像仓库中。先通过 docker tag创建指向目标镜像仓库的镜像名称,然后通过 docker push推送镜像至目标仓库。

docker tag XXX
docker push XXX
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值