3.2. 将应用程序部署到 OpenShift Container Platform


您可以使用 Source-to-image (S2I)工作流将应用程序部署到 OpenShift Container Platform 上的 JBoss EAP。S2I 工作流从 Git 存储库获取源代码,并将它注入到基于您要使用的语言和框架的容器中。在 S2I 工作流完成后,会编译 src 代码,应用将被打包并部署到 JBoss EAP 服务器。

OpenShift Container Platform 使用托管在 Git 存储库中的应用程序。要在 OpenShift 上部署您的应用,您必须首先将应用推送到 Git 存储库。之后,您可以使用 JBoss EAP helm chart 来配置应用程序部署。

先决条件

流程

  1. 如果应用程序还没有位于其中,请将应用程序移到本地 Git 存储库。

    $ mv -r helloworld/ <your_git_repo>
    Copy to Clipboard Toggle word wrap
  2. pom.xml 配置文件中定义以下属性:

    <properties>
        ...
        <version.plugin.eap>1.0.0.Final-redhat-00013</version.plugin.eap> 
    1
    
    </properties>
    Copy to Clipboard Toggle word wrap
    1
    <version.plugin.eap > 定义 JBoss EAP Maven 插件的版本。
  3. 将 JBoss EAP maven 插件添加到 < pluginManagement& gt;,在 &lt ; project> 部分的 <build &gt; 部分。

    <project>
        ...
        <build>
            <pluginManagement>
                <plugins>
                    ...
                    <plugin>
                        <groupId>org.jboss.eap.plugins</groupId>
                        <artifactId>eap-maven-plugin</artifactId>
                        <version>${version.plugin.eap}</version>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
    </project>
    Copy to Clipboard Toggle word wrap
  4. pom.xml 配置文件中创建配置文件"openshift"。

    此配置集定义了在 OpenShift Container Platform 上部署所需的插件、功能软件包和层。

    <profiles>
        <profile>
            <id>openshift</id>
            <build>
                <plugins>
                    <plugin>
                         <groupId>org.jboss.eap.plugins</groupId>
                         <artifactId>eap-maven-plugin</artifactId>     
    1
    
                         <configuration>
                             <channels>
                                 <channel>
                                     <manifest>
                                         <groupId>org.jboss.eap.channels</groupId>
                                         <artifactId>eap-8.0</artifactId>
                                     </manifest>
                                 </channel>
                             </channels>
                             <feature-packs>
                                 <feature-pack>                            
    2
    
                                     <location>org.jboss.eap:wildfly-ee-galleon-pack</location>
                                 </feature-pack>
                                 <feature-pack>
                                     <location>org.jboss.eap.cloud:eap-cloud-galleon-pack</location>
                                 </feature-pack>
                             </feature-packs>
                             <layers>                                      
    3
    
                                 <layer>cloud-server</layer>
                             </layers>
                             <name>ROOT.war</name>                         
    4
    
                         </configuration>
                         <executions>
                             <execution>
                                 <goals>
                                     <goal>package</goal>
                                 </goals>
                             </execution>
                         </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
    Copy to Clipboard Toggle word wrap
    1
    wildfly-maven-plugin 是一个 JBoss EAP 插件,用于在 OpenShift Container Platform 上部署应用程序置备 JBoss EAP 实例。
    2
    功能包 定义了功能包(包含用于动态置备服务器的功能的文件)。在这种情况下,我们需要 feature-packs org.wildfly:wildfly-galleon-packorg.wildfly.cloud:wildfly-cloud-galleon-pack
    3
    定义要在调配的服务器中包含的层(来自配置的功能包)。每个层标识了一个或多个可以自行安装的服务器功能,或者与其他层结合使用。在我们的情形中,我们选择了 cloud-server 层,该层仅调配 JBoss EAP 的基本功能,非常适合云服务器。
    4
    <name>ROOT.war& lt;/name> :定义应用程序 web 归档(WAR)的结果名称。如果指定了 ROOT.war,则应用程序会在服务器的 root 路径上部署,否则会在 < name/> 相对路径上部署。
  5. 验证应用程序是否编译。

    $ mvn package -Popenshift
    Copy to Clipboard Toggle word wrap
  6. 将更改推送到您的存储库。

使用 JBoss EAP Helm Chart 使用 Helm 配置和部署应用程序到 OpenShift 上的 JBoss EAP。

先决条件

流程

  1. 在应用程序 root directoy 中创建一个名为 charts 的目录并导航到它。应用根目录是包含 pom.xml 配置文件的一个目录。

    $ mkdir charts; cd charts
    Copy to Clipboard Toggle word wrap
  2. 使用以下内容创建文件 helm.yaml

    build:
      uri: https://github.com/<user>/<repository>.git     
    1
    
      ref: <branch_name>                                  
    2
    
      contextDir: helloworld                              
    3
    
    deploy:
      replicas: 1                                         
    4
    Copy to Clipboard Toggle word wrap
    1
    指定包含要在 OpenShift Container Platform 上部署的应用程序的 Git 存储库的 URL。
    2
    指定包含应用程序的 Git 分支。
    3
    指定包含应用程序的目录。
    4
    指定要创建的 pod 数量。
  3. 在 Helm 中配置 JBoss EAP 仓库。

    • 如果您之前没有将 JBoss EAP 仓库添加到 Helm,请添加它。

      $ helm repo add jboss-eap https://jbossas.github.io/eap-charts/
      Copy to Clipboard Toggle word wrap
    • 如果您已将 JBoss EAP 存储库添加到 Helm,请更新它。

      $ helm repo update jboss-eap
      Copy to Clipboard Toggle word wrap
  4. 使用 helm 部署应用程序。

    $ helm install helloworld -f helm.yaml jboss-eap/eap8
    Copy to Clipboard Toggle word wrap

    完成部署可能需要几分钟时间。

验证

  1. 获取指向部署的路由的 URL。

    $ APPLICATION_URL=https://$(oc get route helloworld --template='{{ .spec.host }}') &&
    echo "" &&
    echo "Application URL: $APPLICATION_URL"
    Copy to Clipboard Toggle word wrap
  2. 在浏览器中导航至"应用程序 URL"。

    您会在路径 "/HelloWorld" 重定向到 servlet,您会收到以下消息:

    Hello World!
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部